目錄
品味篇 識別優(yōu)秀設計
第 1章 優(yōu)質代碼的外部特征 2
1.1 實現了期望的功能 2
1.2 缺陷盡量少 6
1.3 易于理解 8
1.4 易于演進 11
1.5 易于復用 13
1.6 小結 14
第 2章 優(yōu)質代碼的內在特征 16
2.1 一致的編碼風格 16
2.2 有意義的命名 19
2.3 簡潔的行為實現 24
2.4 高內聚和低耦合的模塊化結構 28
2.5 沒有重復 37
2.6 沒有多余的設計 42
2.7 具備自動化測試 45
2.8 小結 47
第3章 高質量的需求 52
3.1 用結構化的方法分析需求 52
3.2 定義業(yè)務目標 58
3.3 探索業(yè)務流程,定義系統(tǒng)功能 61
3.4 完善操作步驟,澄清業(yè)務規(guī)則 68
3.5 小結 77
第4章 領域建模 79
4.1 領域模型的概念 79
4.2 捕獲業(yè)務概念 85
4.3 辨析業(yè)務概念 85
4.4 持續(xù)演進業(yè)務概念 91
4.5 用領域模型指導軟件開發(fā) 95
4.6 小結 97
專業(yè)篇 建立扎實功底
第5章 設計分解和責任分配 99
5.1 通過分而治之管理復雜性 99
5.2 架構分解的原則與模式 105
5.3 正確使用語言特性 110
5.4 關注點分離 116
5.5 設計模式 119
5.6 小結 124
第6章 依賴、接口和契約 126
6.1 依賴的設計原則 126
6.2 需求方接口 134
6.3 提供方接口 142
6.4 設計契約 145
6.5 事件機制 151
6.6 小結 156
卓越篇 實現高效編碼
第7章 用測試描述需求和契約 160
7.1 將測試作為一個建設性活動 160
7.2 從V 模型到I 模型 161
7.3 用測試澄清和文檔化需求 164
7.4 用測試澄清職責和契約 170
7.5 測試先行 174
7.6 小結 180
第8章 用領域模型指導實現 182
8.1 用領域模型指導實現 182
8.2 基本構造塊 188
8.3 聚合、資源庫和工廠 196
8.4 分層架構和代碼結構 208
8.5 限界上下文 211
8.6 上下文映射 213
8.7 領域模型的持續(xù)演進 217
8.8 小結 219
第9章 由外而內的設計 221
9.1 如何由外而內 221
9.2 由外而內設計的優(yōu)勢 235
9.3 應用測試替身 238
9.4 測試先行和由外而內 247
9.5 把由外而內應用于大規(guī)模的項目 249
9.6 小結 261
第 10章 設計質量貫穿始終 263
10.1 質量內建 263
10.2 契約式設計和防御式編程 265
10.3 高質量的自動化測試 273
10.4 代碼評審和結對編程 285
10.5 代碼質量度量和問題檢測 288
10.6 小結 300
第 11章 讓設計持續(xù)演進 302
11.1 軟件設計的演進本質 302
11.2 簡單設計 305
11.3 重構 310
11.4 測試驅動開發(fā) 318
11.5 持續(xù)集成 330
11.6 小結 332
第 12章 精益思想和高效編程 334
12.1 精益思想 334
12.2 精益思想和軟件設計的關系 337
12.3 總結 340
參考文獻 345
索引 349