代碼整潔之道.PDF 下載 代碼整潔之道.PDF 中文版 高清 PDF 電子書下載 代碼整潔之道下載數據庫
點我下載編程
做者簡介 · · · · · ·
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 可測試性設計 219 測試專用API 220 本章小結 221 第29章 整潔的嵌入式架構 222 「程序適用測試」測試 225 目標硬件瓶頸 228 本章小結 238 第6部分 實現細節 第30章 數據庫只是實現細節 240 關係型數據庫 241 爲何數據庫系統如此流行 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