架構整潔之道

架構整潔之道

《架構整潔之道》是2018年電子工業出版社出版的圖書,作者是羅伯特 C. 馬丁。

基本介紹

  • 書名架構整潔之道
  • 作者:羅伯特 C. 馬丁
  • 譯者:孫宇聰
  • 出版社:電子工業出版社
  • 出版時間:2018年9月
  • 頁數:348 頁
  • 定價:99 元
  • 開本:16 開 
  • 裝幀:平裝
  • ISBN:9787121347962
內容簡介,作者簡介,目錄,

內容簡介

《架構整潔之道》圍繞“架構整潔”這一重要導向,系統地剖析其緣起、內涵及套用場景,涵蓋軟體研發完整過程及所有核心架構模式。《架構整潔之道》分為6部分,第1部分綱領性地提出軟體架構設計的終極目標,描述軟體架構設計的重點與模式;第2~4部分從軟體開發中三個基礎編程範式的定義和特徵出發,進一步描述函式、組件、服務設計與實現的定律,以及它們是如何有效構建軟體系統的整體架構的;第5部分從整潔架構的定義開始,詳細闡述軟體架構設計過程中涉及的方方面面,包括劃分內部組件邊界、套用常見設計模式、避開錯誤、降低成本、處理特殊情況等,並以實戰案例將內容有機整合起來;第6部分講述具體實現細節;附錄則透過作者數十年的軟體從業經歷再次印證《架構整潔之道》的觀點。

作者簡介

作者:Robert C. Martin,Object Mentor公司總裁,面向對象設計、模式、UML、敏捷方法學和極限編程領域的資深顧問。他是Designing Object-Oriented C++ Applications Using the Booch Method 以及 Jolt 獲獎圖書 Agile Software Development, Principles,Palterns,and Practices(中譯版《敏捷軟體開發:原則、模式與實踐》)《代碼整潔之道》等書作者。
譯者:孫宇聰,曾在谷歌工作多年,任谷歌高級SRE(Senior Site Reliblity Engineer),前Coding.net 技術負責人。

目錄

第1部分 概述
第1章 設計與架構究竟是什麼 3
目標是什麼 4
案例分析 5
本章小結 11
第2章 兩個價值維度 12
行為價值 13
架構價值 13
哪個價值維度更重要 14
艾森豪矩陣 15
為好的軟體架構而持續鬥爭 16
第2部分 從基礎構件開始:編程範式
第3章 編程範式總覽 21
結構化編程 22
面向對象編程 22
函式式編程 23
僅供思考 23
本章小結 24
第4章 結構化編程 25
可推導性 26
goto是有害的 28
功能性降解拆分 29
形式化證明沒有發生 29
科學來救場 29
測試 30
本章小結 31
第5章 面向對象編程 32
封裝 33
繼承 36
多態 38
本章小結 44
第6章 函式式編程 45
整數平方 46
不可變性與軟體架構 47
可變性的隔離 48
事件溯源 49
本章小結 51
第3部分 設計原則
第7章 SRP:單一職責原則 56
反面案例2:代碼合併 59
解決方案 60
本章小結 61
第8章 OCP:開閉原則 62
思想實驗 63
依賴方向的控制 67
信息隱藏 67
本章小結 67
第9章 LSP:里氏替換原則 68
繼承的使用指導 69
正方形/長方形問題 70
LSP與軟體架構 70
違反LSP的案例 71
本章小結 73
第10章 ISP:接口隔離原則 74
ISP與程式語言 76
ISP與軟體架構 76
本章小結 77
第11章 DIP:依賴反轉原則 78
穩定的抽象層 79
工廠模式 80
具體實現組件 82
本章小結 82
第4部分 組件構建原則
第12章 組件 84
組件發展史 85
重定位技術 88
連結器 88
本章小結 90
第13章 組件聚合 91
復用/發布等同原則 92
共同閉包原則 93
共同復用原則 94
組件聚合張力圖 95
本章小結 97
第14章 組件耦合 98
無依賴環原則 99
自上而下的設計 105
穩定依賴原則 106
穩定抽象原則 112
本章小結 117
第5部分 軟體架構
第15章 什麼是軟體架構 120
開發(Development) 122
部署(Deployment) 123
運行(Operation) 123
維護(Maintenance) 124
保持可選項 124
設備無關性 126
垃圾郵件 128
物理地址定址 129
本章小結 130
第16章 獨立性 131
用例 132
運行 133
開發 133
部署 134
保留可選項 134
按層解耦 135
用例的解耦 136
解耦的模式 136
開發的獨立性 137
部署的獨立性 137
重複 138
再談解耦模式 139
本章小結 141
第17章 劃分邊界 142
幾個悲傷的故事 143
FitNesse 146
應在何時、何處畫這些線 148
輸入和輸出怎么辦 151
外掛程式式架構 152
外掛程式式架構的好處 153
本章小結 154
第18章 邊界剖析 155
跨邊界調用 156
令人生畏的單體結構 156
部署層次的組件 158
執行緒 159
本地進程 159
服務 160
本章小結 161
第19章 策略與層次 162
層次(Level) 163
本章小結 166
第20章 業務邏輯 167
業務實體 168
用例 169
請求和回響模型 171
本章小結 172
第21章 尖叫的軟體架構 173
架構設計的主題 174
架構設計的核心目標 175
那Web呢 175
框架是工具而不是生活信條 175
可測試的架構設計 176
本章小結 176
第22章 整潔架構 177
依賴關係規則 179
一個常見的套用場景 183
本章小結 184
第23章 展示器和謙卑對象 185
謙卑對象模式 186
展示器與視圖 186
測試與架構 187
資料庫網關 188
數據映射器 188
服務監聽器 189
本章小結 189
第24章 不完全邊界 190
省掉最後一步 191
單向邊界 192
門戶模式 193
本章小結 193
第25章 層次與邊界 194
基於文本的冒險遊戲:Hunt The Wumpus 195
可否採用整潔架構 196
交匯數據流 199
數據流的分割 199
本章小結 201
第26章 Main組件 203
最細節化的部分 204
本章小結 208
第27章 服務:巨觀與微觀 209
面向服務的架構 210
服務所帶來的好處 210
運送貓咪的難題 212
對象化是救星 213
基於組件的服務 215
橫跨型變更 216
本章小結 216
第28章 測試邊界 217
測試也是一種系統組件 218
測試專用API 220
本章小結 221
第29章 整潔的嵌入式架構 222
“程式適用測試”測試 225
目標硬體瓶頸 228
本章小結 238
第6部分 實現細節
第30章 資料庫只是實現細節 240
為什麼資料庫系統如此流行 242
假設磁碟不存在會怎樣 243
實現細節 243
但性能怎么辦呢 244
一段軼事 244
本章小結 246
第31章 Web是實現細節 247
無盡的鐘擺 248
總結一下 250
本章小結 251
第32章 應用程式框架是實現細節 252
框架作者 253
單向婚姻 253
風險 254
解決方案 255
不得不接受的依賴 255
本章小結 256
第33章 案例分析:視頻銷售網站 257
產品 258
用例分析 258
組件架構 260
依賴關係管理 261
本章小結 262
第34章 拾遺 263
按層封裝 264
按功能封裝 266
連線埠和適配器 268
按組件封裝 270
具體實現細節中的陷阱 274
組織形式與封裝的區別 275
其他的解耦合模式 277
本章小結:本書拾遺 279
後序 280
附錄A 架構設計考古 283

相關詞條

熱門詞條

聯絡我們