軟件設計重構 软件设计重构

[印度]吉里什·蘇爾亞那拉亞那,加內什·撒馬爾蒂亞姆,圖沙爾·夏爾馬

買這商品的人也買了...

商品描述

<內容簡介>

本書主要介紹25個軟件架構壞味,它們在確定設計問題時的作用以及可用的重構方法,並結合圖表和示例給出了詳盡說明,旨在引領讀者掌握代碼易讀、易修改的關鍵,讓代碼具備重構能力。另外,本書將何時應該重構、重構時遇到的一些常見問題穿插在了示例講解中。
本書適合軟件架構師、軟件開發工程師和項目經理。

<章節目錄>

第1章技術債務1
1.1何為技術債務2
1.2技術債務的組成部分2
1.3技術債務的影響3
1.4引發技術債務的因素5
1.5如何管理技術債務6
第2章設計壞味7
2.1為何要關心壞味8
2.2導致壞味的原因9
2.2.1違反設計原則10
2.2.2不恰當地使用模式10
2.2.3語言的局限性11
2.2.4面向對像中的過程型思維11
2.2.5粘滯性11
2.2.6未遵循最佳實踐和過程12
2.3如何消除壞味12
2.4本書涵蓋的壞味12
2.5一種設計壞味分類方案13
2.5.1基於設計原則的壞味分類13
2.5.2壞味命名方案14
2.5.3壞味記錄模板15
第3章抽象型壞味16
3.1缺失抽象19
3.1.1理據19
3.1.2潛在的原因19
3.1.3示例20
3.1.4重構建議21
3.1 .5影響的質量指標22
3.1.6別名22
3.1.7現實考慮23
3.2命令式抽象23
3.2.1理據23
3.2.2潛在的原因23
3.2.3示例24
3.2.4重構建議25
3.2.5影響的質量指標26
3.2.6別名28
3.2.7現實考慮28
3.3不完整的抽象28
3.3.1理據28
3.3.2潛在的原因29
3.3.3示例29
3.3.4重構建議31
3.3.5影響的質量指標32
3.3.6別名33
3.3.7現實考慮33
3.4多方面抽象34
3.4.1理據34
3.4.2潛在的原因34
3.4.3示例35
3.4.4重構建議36
3.4.5影響的質量指標37
3.4.6別名37
3.4.7現實考慮37
3.5不必要的抽象37
3.5.1理據38
3.5.2潛在的原因38
3.5.3示例38
3.5.4重構建議40
3.5.5影響的質量指標41
3.5.6別名41
3.5.7現實考慮41
3.6未用的抽象42
3.6.1理據42
3.6.2潛在的原因42
3.6.3示例43
3.6.4重構建議44
3.6.5影響的質量指標45
3.6.6別名46
3.6.7現實考慮46
3.7重複的抽象46
3.7.1理據47
3.7.2潛在的原因47
3.7.3示例48
3.7.4重構建議50
3.7.5影響的質量指標51
3.7. 6別名51
3.7.7現實考慮52
第4章封裝型壞味53
4.1不充分的封裝55
4.1.1理據55
4.1.2潛在的原因55
4.1.3示例56
4.1.4重構建議60
4.1.5影響的質量指標62
4.1.6別名62
4.1.7現實考慮62
4.2洩露的封裝63
4.2.1理據63
4.2.2潛在的原因64
4.2.3示例64
4.2.4重構建議67
4.2.5影響的質量指標69
4.2.6別名69
4.2.7現實考慮69
4.3缺失封裝70
4.3.1理據70
4.3.2潛在的原因71
4.3.3示例71
4.3.4重構建議73
4.3.5影響的質量指標76
4.3.6別名77
4.3.7現實考慮77
4.4未利用封裝77
4.4.1理據77
4.4.2潛在的原因78
4.4.3示例78
4.4.4重構建議80
4.4.5影響的質量指標80
4.4. 6別名82
4.4.7現實考慮82
第5章模塊化型壞味83
5.1拆散的模塊化85
5.1.1理據86
5.1.2潛在的原因86
5.1.3示例86
5.1.4重構建議88
5.1. 5影響的質量指標90
5.1.6別名90
5.1.7現實考慮91
5.2不充分的模塊化91
5.2.1理據91
5.2.2潛在的原因92
5.2.3示例92
5.2.4重構建議95
5.2. 5影響的質量指標96
5.2.6別名96
5.2.7現實考慮96
5.3循環依賴式模塊化97
5.3.1理據97
5.3.2潛在的原因98
5.3.3示例99
5.3.4重構建議101
5.3. 5影響的質量指標105
5.3.6別名106
5.3.7現實考慮106
5.4輪轂式模塊化107
5.4.1理據107
5.4.2潛在的原因107
5.4.3示例107
5.4.4重構建議109
5.4.5影響的質量指標110
5.4.6別名110
5.4.7現實考慮110
第6章層次結構型壞味111
6.1缺失層次結構115
6.1.1理據115
6.1.2潛在的原因115
6.1.3示例115
6.1.4重構建議117
6.1.5影響的質量指標119
6.1.6別名120
6.1.7現實考慮120
6.2不必要的層次結構121
6.2.1理據121
6.2.2潛在的原因121
6.2.3示例122
6.2.4重構建議125
6.2.5影響的質量指標126
6.2.6別名126
6.2.7現實考慮127
6.3未歸併的層次結構127
6.3.1理據127
6.3.2潛在的原因128
6.3.3示例128
6.3.4重構建議132
6.3.5影響的質量指標134
6.3.6別名135
6.3.7現實考慮135
6.4過寬的層次結構136
6.4.1理據136
6.4.2潛在的原因137
6.4.3示例137
6.4.4重構建議138
6.4.5影響的質量指標139
6.4.6別名139
6.4.7現實考慮140
6.5憑空想像的層次結構140
6.5.1理據140
6.5.2潛在的原因140
6.5.3示例141
6.5.4重構建議141
6.5.5影響的質量指標142
6.5.6別名142
6.5.7現實考慮143
6.6過深的層次結構143
6.6.1理據143
6.6.2潛在的原因143
6.6.3示例144
6.6.4重構建議145
6.6.5影響的質量指標146
6.6.6別名147
6.6.7現實考慮148
6.7叛逆型層次結構148
6.7.1理據148
6.7.2潛在的原因148
6.7.3示例149
6.7.4重構建議150
6.7.5影響的質量指標153
6.7.6別名154
6.7.7現實考慮154
6.8支離破碎的層次結構157
6.8.1理據158
6.8.2潛在的原因158
6.8.3示例158
6.8.4重構建議163
6.8.5影響的質量指標164
6.8.6別名164
6.8.7現實考慮165
6.9多路徑層次結構166
6.9.1理據166
6.9.2潛在的原因167
6.9.3示例167
6.9.4重構建議170
6.9.5影響的質量指標171
6.9.6別名171
6.9.7現實考慮171
6.10循環層次結構172
6.10.1理據172
6.10.2潛在的原因173
6.10.3示例173
6.10.4重構建議173
6.10 .5影響的質量指標175
6.10.6別名176
6.10.7現實考慮176
第7章壞味生態系統177
7.1具體情況的影響177
7.2壞味的相互影響180
7.2.1壞味通常不單獨出現180
7.2 .2壞味可能昭示著存在更深層的問題183
第8章技術債務償還實戰185
8.1工具185
8.1.1理解工具186
8.1.2評估工具、代碼克隆檢測器和度量工具186
8.1.3技術債務量化和可視化工具187
8.1.4重構工具187
8.1.5實際使用工具187
8.2流程188
8.2.1重構面臨的挑戰188
8.2.2讓人認可重構188
8.2.3 IMPACT——一個重構流程模型189
8.2.4技術債務償還重構最佳實踐192
8.3人員193
8.3.1培訓193
8.3.2研討會和講座193
8.3.3以身作則193
附錄A軟件設計原則194
附錄B技術債務償還工具197
附錄C示意圖使用的表示法200
附錄D推薦讀物202
參考文獻204