平衡耦合:軟件設計的黃金法則
(美)弗拉德·霍諾諾夫
- 出版商: 清華大學
- 出版日期: 2026-06-01
- 售價: $480
- 語言: 簡體中文
- 頁數: 166
- ISBN: 7302720568
- ISBN-13: 9787302720560
-
相關分類:
Design Pattern
- 此書翻譯自: Balancing Coupling in Software Design: Successful Software Architecture in General and Distributed Systems (Paperback)
-
相關翻譯:
軟體設計耦合的平衡之道:建構模組化軟體系統的通用設計原則 (Balancing Coupling in Software Design: Successful Software Architecture in General and Distributed Systems) (繁中版)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
了解耦合如何影響並控制每一個軟件設計決策若想構建模塊化、可演進且具有彈性的軟件系統,就一定要學會正確處理耦合。每一個設計決策都會影響耦合,而耦合反過來又會影響後續的設計決策。盡管耦合至關重要,但它直到現在都未得到應有的重視。自軟件工程誕生之初,人們就清楚地認識到,合理管理耦合對於構建模塊化軟件系統至關重要。多年來,這一主題得到了廣泛研究,但一部分研究成果已被遺忘,還有一部分現今難以運用。作者不僅借鑒已有知識構建了一個模型,還將其與現代軟件工程實踐相結合,為模塊化軟件設計提供了全新視角。秉持以實踐為基礎的原則,作者不僅會教你如何駕馭耦合的多維性質,還會教你如何將耦合當作管理覆雜性和提高模塊化的工具來使用。也許《平衡耦合:軟件設計的黃金法則》會改變你對軟件設計的整體看法。主要內容:?闡釋耦合的概念及其在系統設計和架構中的作用?解釋了耦合如何能夠在增加系統覆雜性的同時又能促進系統模塊化?介紹一種整體模型,可將耦合轉化為設計模塊化軟件的工具?展示如何改進設計決策以支持軟件系統持續發展?通過真實的案例研究說明所討論的原則
目錄大綱
第Ⅰ部分 耦合
第1章 耦合與系統設計 3
1.1 什麼是耦合 3
1.2 耦合度 4
1.2.1 生命周期的共享 4
1.2.2 共享知識 5
1.3 知識流 7
1.4 系統 8
1.4.1 系統中的耦合 8
1.4.2 可選:機械工程中的耦合和成本管理 11
1.5 本章要點 12
1.6 小測驗 13
第2章 耦合與覆雜性:Cynefin框架 15
2.1 什麼是覆雜性 15
2.1.1 軟件設計的覆雜性 16
2.1.2 覆雜性是主觀的 16
2.2 Cynefin框架 16
2.2.1 明確 17
2.2.2 繁雜 17
2.2.3 覆雜 17
2.2.4 混亂 19
2.2.5 無序 20
2.3 比較Cynefin領域 20
2.4 軟件設計中的Cynefin 21
2.4.1 示例A:集成外部服務 21
2.4.2 示例B:更改數據庫索引 23
2.5 Cynefin應用 25
2.6 Cynefin與覆雜性 25
2.7 本章要點 25
2.8 小測驗 26
第3章 耦合與覆雜性:交互 29
3.1 覆雜性的本質 29
3.2 覆雜性與系統設計 30
3.2.1 線性交互 30
3.2.2 覆雜交互 31
3.2.3 覆雜性與系統規模 32
3.3 層次覆雜性 32
3.3.1 僅優化全局覆雜性 33
3.3.2 僅優化局部覆雜性 34
3.3.3 平衡覆雜性 35
3.4 自由度 35
3.4.1 軟件設計中的自由度 35
3.4.2 自由度和覆雜交互 37
3.5 覆雜性與約束 37
3.5.1 示例:限制自由度 37
3.5.2 Cynefin多個領域中的約束 38
3.6 耦合與覆雜交互 39
3.7 連接耦合和覆雜性的示例 39
3.7.1 設計A:使用SQL篩選支持案例 39
3.7.2 設計B:使用查詢對象 41
3.7.3 設計C:使用專用查找方法 42
3.7.4 耦合、自由度和約束 43
3.8 本章要點 44
3.9 小測驗 44
第4章 耦合與模塊化 47
4.1 模塊化 47
4.2 模塊 48
4.2.1 樂高積木 50
4.2.2 相機鏡頭 50
4.3 軟件系統中的模塊化 50
4.3.1 軟件模塊 51
4.3.2 軟件模塊的功能、邏輯和上下文 52
4.3.3 有效的模塊 53
4.3.4 作為抽象的模塊 54
4.4 模塊化、覆雜性與耦合 56
4.4.1 深層模塊 56
4.4.2 模塊化與覆雜性 57
4.4.3 模塊化:物極必反 58
4.5 模塊化中的耦合 59
4.6 本章要點 60
4.7 小測驗 60
第Ⅱ部分 維度
第5章 結構化設計的模塊耦合 65
5.1 結構化設計 66
5.2 模塊耦合 66
5.2.1 內容耦合 66
5.2.2 公共耦合 68
5.2.3 外部耦合 70
5.2.4 控制耦合 72
5.2.5 印章耦合 74
5.2.6 數據耦合 75
5.3 模塊耦合層次的比較 77
5.4 本章要點 78
5.5 小測驗 78
第6章 共生性 81
6.1 什麼是共生性 81
6.2 靜態共生性 82
6.2.1 名稱共生性 82
6.2.2 類型共生性 83
6.2.3 意義共生性 84
6.2.4 算法共生性 85
6.2.5 位置共生性 86
6.3 動態共生性 87
6.3.1 執行共生性 87
6.3.2 時序共生性 88
6.3.3 值共生性 89
6.3.4 身份共生性 91
6.4 評估共生性 92
6.4.1 管理共生性 92
6.4.2 共生性與結構化設計中的模塊耦合 93
6.5 本章要點 94
6.6 小測驗 95
第7章 集成強度 97
7.1 耦合強度 97
7.1.1 結構化設計、共生性還是兩者兼而有之 98
7.1.2 結構化設計與共生性:盲點 99
7.1.3 不同的策略 99
7.2 集成強度概念 100
7.3 侵入式耦合 101
7.3.1 侵入式耦合的示例 101
7.3.2 示例:共享數據庫的侵入式耦合 102
7.3.3 侵入式耦合的影響 102
7.4 功能耦合 103
7.4.1 功能耦合度 103
7.4.2 功能耦合的原因 105
7.4.3 示例:通過共享數據庫實現功能耦合 105
7.4.4 功能耦合的影響 105
7.5 模型耦合 106
7.5.1 模型耦合度 108
7.5.2 示例:通過共享數據庫實現模型耦合 109
7.5.3 模型耦合的影響 109
7.6 契約耦合 110
7.6.1 契約耦合的示例 111
7.6.2 契約耦合度 113
7.6.3 契約耦合的深度 114
7.6.4 示例:通過共享數據庫實現契約耦合 116
7.6.5 契約耦合的影響 116
7.7 集成強度的討論 117
7.8 集成強度和異步執行 119
7.9 本章要點 120
7.10 小測驗 121
第8章 距離 123
8.1 距離和封裝邊界 123
8.1.1 距離成本 124
8.1.2 生命周期耦合的距離 125
8.1.3 評估距離 127
8.2 影響距離的其他因素 127
8.2.1 距離與社會技術設計 128
8.2.2 距離與運行時耦合 129
8.2.3 異步通信和更改成本 130
8.3 距離與鄰近性 130
8.4 距離與集成強度 131
8.5 本章要點 131
8.6 小測驗 131
第9章 波動性 133
9.1 更改與耦合 133
9.2 軟件更改的原因 134
9.2.1 解決方案更改 134
9.2.2 問題更改 135
9.3 評估更改率 136
9.3.1 領域分析 136
9.3.2 源代碼控制分析 140
9.4 波動性和集成強度 140
9.5 推理波動性 142
9.6 本章要點 143
9.7 小測驗 143
第Ⅲ部分 平衡
第10章 平衡耦合 147
10.1 結合耦合的各個維度 147
10.1.1 度量單位 149
10.1.2 穩定性:波動性與強度 149
10.1.3 實際成本:波動性與距離 150
10.1.4 模塊化與覆雜性:強度與距離 150
10.2 結合強度、距離與波動性 151
10.2.1 維護成本:強度、距離、波動性 151
10.2.2 平衡耦合:強度、距離、波動性 153
10.3 在標量尺度上實現耦合的平衡 154
10.3.1 標量 154
10.3.2 平衡耦合公式 155
10.3.3 平衡耦合:示例 156
10.4 本章要點 158
10.5 小測驗 159
第11章 重新平衡耦合 161
11.1 彈性設計 161
11.2 軟件更改媒介 162
11.2.1 戰術更改 162
11.2.2 戰略更改 162
11.3 重新耦合度量與案例研究 164
11.3.1 強度 165
11.3.2 波動性 168
11.3.3 距離 169
11.3.4 重新平衡的覆雜性 169
11.4 本章要點 170
11.5 小測驗 170
第12章 軟件設計的分形幾何 173
12.1 增長 173
12.1.1 基於網絡的系統 174
12.1.2 作為基於網絡系統的軟件設計 175
12.1.3 系統增長的原因 175
12.1.4 增長的極限 176
12.1.5 軟件設計中的增長動力 177
12.2 創新 180
12.2.1 軟件設計中的創新 181
12.2.2 抽象即創新 181
12.3 分形幾何 183
12.4 分形模塊化 185
12.5 本章要點 185
12.6 小測驗 186
第13章 平衡耦合的實踐 187
13.1 微服務 187
13.1.1 案例研究1:共享外部知識的事件 187
13.1.2 案例研究2:足夠好的集成 191
13.2 架構模式 191
13.2.1 案例研究3:降低覆雜性 192
13.2.2 案例研究4:層、端口和適配器 194
13.3 業務對象 197
13.3.1 案例研究5:實體和聚合 197
13.3.2 案例研究6:組織類 200
13.4 方法 201
13.4.1 案例研究7:分而治之 201
13.4.2 案例研究8:代碼異味 203
13.5 本章要點 206
13.6 小測驗 206
第14章 結語 207
後記 209
附錄A 耦合之歌 211
附錄B 術語 215
附錄C 小測驗答案 221
