幫助中心 | 我的帳號 | 關於我們

浮現式設計(專業軟體開發的演進本質)/圖靈程序設計叢書

  • 作者:(美)貝恩|譯者:趙俐//華潔
  • 出版社:人民郵電
  • ISBN:9787115259783
  • 出版日期:2011/08/01
  • 裝幀:平裝
  • 頁數:278
人民幣:RMB 59 元      售價:
放入購物車
加入收藏夾

內容大鋼
    浮現式設計是一種敏捷技術,強調在開發過程中不斷演進。由Scott L. Bain編著的《浮現式設計:專業軟體開發的演進本質》的討論圍繞著專業軟體開發方法的演進主題展開,強調了讓軟體成為一個真正專業的重要性,以及以演進方式開發軟體的重大意義。書中談到了如何在演進過程中綜合運用設計模式、重構、單元測試和測試驅動開發等實踐,以及何時制定耦合、內聚和封裝等關鍵決策,而且通過準確生動的示例說明了如何開發出真正有用的軟體。
    《浮現式設計:專業軟體開發的演進本質》主要面向軟體開發者群體,尤其是對敏捷開發感興趣的程序設計人員。

作者介紹
(美)貝恩|譯者:趙俐//華潔
    擁有30年從業經驗的資深電腦技術專家。主要從事開發、工程和設計。他還曾負責設計、提供和管理認證培訓課程。從事最終用戶的技能培訓,既有課堂授課.也有遠程教育。過去8年來。Scott一直在華盛頓州普捷灣畔的Net Objectives公司工作,負責培訓課程以及有關設計模式、重構、單元測試、測試驅動開發的咨詢工作。Scott與Net Objectives的CEO Alan Shalloway一起為敏捷環境中的設計模式集成做出了卓越的貢獻。他還經常在各種開發者會議(例如JavaOne和SDWest)上發表演講。

目錄
第1章 軟體開發這個職業1
  1.1 人類製作軟體已經有多久的歷史了1
  1.2 軟體開發是一種什麼樣的活動2
  1.3 軟體開發缺少了什麼4
  1.4 誰說了算6
  1.5 獨特性6
第2章 從衣櫥到探月8
  2.1 軟體開發中的模式和專業化8
  2.2 Andrea的衣櫥9
  2.3 探月13
    2.3.1 因素的連鎖變化16
    2.3.2 不同的因素導致不同的設計16
    2.3.3 還有更多環境因素17
    2.3.4 成本和獲益18
    2.3.5 火星探險18
  2.4 模式的價值19
  2.5 小結20
第3章 軟體開發的本質21
  3.1 失敗率過高21
  3.2 成功的定義22
  3.3 Standish Group23
  3.4 做了錯誤的事情24
  3.5 做事的方式錯了25
  3.6 隨著時間的推移,軟體開發也有所改善27
  3.7 一個原因:土木工程的類比27
  3.8 放棄希望29
  3.9 有時等待和拖延也是必要的30
  3.10 橋是硬的,軟體是軟的30
  3.11 我們在變化的海洋中游泳31
  3.12 接受變化31
  3.13 擁抱變化32
  3.14 利用變化32
  3.15 更好的類比:不斷演進的系統34
  3.16 小結37
第4章 代碼的演進:初級階段38
  4.1 用對象結構來代替過程邏輯38
  4.2 面向對象和模式的起源39
  4.3 一個示例:簡單條件和Proxy模式40
  4.4 下一步:多路徑條件選擇43
  4.5 為什麼要採用對象結構45
  4.6 從多個條件中選擇一個46
  4.7 小結46
第5章 使用和發現模式48
  5.1 根據上下文進行設計:我做的另一個木匠活48
  5.2 模式引出了另一個看問題的角度55
  5.3 模式提供了一種討論設計的語言55
  5.4 本書中的模式56
  5.5 小結56
第6章 軟體開發金字塔58
  6.1 構成專業的元素58

  6.2 一種形象的表示60
  6.3 小結60
第7章 注重軟體質量61
  7.1 封裝62
  7.2 內聚62
    7.2.1 方法內聚63
    7.2.2 視角層的內聚65
    7.2.3 類內聚66
    7.2.4 內聚到何種程度才足夠67
  7.3 耦合67
    7.3.1 有意耦合與意外耦合68
    7.3.2 耦合類型69
  7.4 冗余 73
  7.5 可測試性 77
  7.6 可讀性 78
  7.7 軟體的病癥 79
    7.7.1 內聚性較差的信號 79
    7.7.2 意外耦合或不合邏輯耦合的信號80
    7.7.3 冗余的信號81
  7.8 小結81
第8章 注重原則和智慧結晶83
  8.1 使用與創建分離83
    8.1.1 Fowler的三層視角83
    8.1.2 另一種視角84
    8.1.3 使用的視角85
    8.1.4 一個單獨的視角:創建86
    8.1.5 最後考慮構造細節87
    8.1.6 回到現實88
  8.2 開閉原則89
    8.2.1 類級的開閉原則90
    8.2.2 方法級的開閉原則91
  8.3 依賴倒置原則92
  8.4 GoF的建議93
    8.4.1 設計方法的介面93
    8.4.2 設計類的介面94
    8.4.3 GoF:優先使用對象聚合而非類繼承95
  8.5 GoF:在設計中思考什麼應該變化並封裝會發生變化的概念98
  8.6 小結100
第9章 注重實踐101
  9.1 統一編碼風格101
    9.1.1 註釋102
    9.1.2 命名類、方法和變數103
    9.1.3 編碼標準的好處104
  9.2 意圖導向編程105
  9.3 封裝構造函數107
    9.3.1 原則與實踐110
    9.3.2 做出決定110
  9.4 公共性-可變性分析111
  9.5 實踐與自由114
  9.6 小結115

第10章 注重紀律:單元測試116
  10.1 測試的經濟學116
    10.1.1 單元測試117
    10.1.2 先寫測試119
  10.2 JUnit框架120
    10.2.1 JUnit基礎知識121
    10.2.2 JUnit示例122
    10.2.3 Rule.java:先編碼,再測試122
    10.2.4 RuleContainer.java:先測試,再編碼128
    10.2.5 消除冗余:@Before和@After135
    10.2.6 自動化批量測試137
    10.2.7 異常和單元測試139
  10.3 模擬對象141
    10.3.1 MockObject框架142
    10.3.2 偽對象145
    10.3.3 依賴注入和Endo-Testing技巧146
    10.3.4 Endo-Testing147
  10.4 小結148
第11章 注重紀律:重構149
  11.1 重構質量糟糕的代碼150
  11.2 重構質量優秀的代碼151
  11.3 結構變化與功能變化152
  11.4 重構可幫助你做出選擇153
  11.5 模式可以成為重構的目標154
  11.6 避免重構:預構154
  11.7 重構技巧155
  11.8 重構遺留代碼162
  11.9 小結164
第12章 測試驅動開發165
  12.1 何謂測試驅動開發165
    12.1.1 測試驅動與先寫測試165
    12.1.2 從單元測試的角度來設計166
  12.2 測試與質量167
    12.2.1 測試與內聚167
    12.2.2 測試與耦合168
    12.2.3 測試與冗余169
  12.3 測試驅動開發與模式169
    12.3.1 Strategy模式169
    12.3.2 烏龜站在烏龜上,一直向下170
    12.3.3 模擬對象/模擬烏龜171
  12.4 模擬對象172
  12.5 模擬烏龜174
  12.6 測試Decorator模式174
  12.7 小結178
第13章 模式與因素179
  13.1 在演進的設計中做決策179
  13.2 Christopher Apexander與他所提出的「因素」180
    13.2.1 信號處理器示例180
    13.2.2 PKZip示例184
    13.2.3 測試與因素186

  13.3 更多選擇,更多因素187
  13.4 小結190
第14章 浮現式設計:案例分析191
  14.1 問題領域:MWave公司191
  14.2 團隊192
  14.3 最簡單的能夠正常運作的設計194
  14.4 新需求:更複雜的機器196
  14.5 順便介紹一下198
  14.6 更多好消息199
  14.7 小結:設計是一次漫長而奇特的旅行200
第15章 結束語:展望2020年202
附錄A 演進路徑204
附錄B 示例中用到的模式簡介213
附錄C 有用幻覺之原理274
參考書目279

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032