预购商品
书目分类
特别推荐
以軟體架構師的能力培養為切入點,結合作者在過去10多年的工作中積累的經驗,介紹了一名合格甚至優秀的架構師應該具備的能力。 本書分為4篇,總計9章,基本涵蓋了大部分生產環境下的系統設計原則以及方案。本書主要內容有基本設計原則、輕鬆應對後續的變化、優雅地暴露內部屬性、複雜邏輯的拆解與協同、複用的人性化設計、遮罩外部依賴的防火牆設計、事件的分散性與協定化封裝、基於Reactor模式的系統優化、代碼邊界的延伸——善用SDK。 本書儘管內容篇幅短小,但是信息量相當密集。本書適合具有一定程式設計經驗,在業務上仍然有追求,希望能晉升為軟體架構師的軟體發展人員閱讀。同時,對設計模式感興趣的初級開發人員,可以通過本書掌握與架構設計相關的知識。
第1章 基本設計原則 1 1.1 單一職責原則 2 1.1.1 簡述 2 1.1.2 示例 3 1.1.3 小結 8 1.2 開閉原則 8 1.2.1 簡述 8 1.2.2 示例 10 1.2.3 小結 13 1.3 依賴倒置原則 14 1.3.1 簡述 14 1.3.2 示例 15 1.3.3 小結 17 1.4 裡氏替換原則 17 1.4.1 簡述 17 1.4.2 示例 18 1.4.3 小結 20 1.5 迪米特法則 20 1.5.1 簡述 20 1.5.2 示例 21 1.5.3 小結 22 1.6 介面隔離原則 22 1.7 總結 24 第2章 輕鬆應對後續的變化 27 2.1 拋出問題 27 2.2 問題分析 32 2.3 Spring中的PostProcessor機制 33 2.3.1 示例 33 2.3.2 思路抽象 38 2.4 設計優化 40 2.4.1 需求分析與設計 40 2.4.2 代碼實現 41 2.5 總結 49 第3章 優雅地暴露內部屬性 51 3.1 拋出問題 51 3.2 問題分析 58 3.2.1 違背設計原則 58 3.2.2 設計看似優雅,實則不然 59 3.3 Spring中的Aware機制 61 3.3.1 Aware概述 64 3.3.2 ApplicationContextAware的實現邏輯 65 3.3.3 思路抽象 67 3.3.4 優勢分析 68 3.4 問題優化 71 3.5 總結 75 第4章 複雜邏輯的拆解與協同 77 4.1 拋出問題 77 4.2 問題分析 81 4.2.1 PostProcessor模式的錯誤選型 82 4.2.2 範本方法模式的錯誤選型 83 4.3 Tomcat中的PipeLine機制 87 4.3.1 Tomcat容器結構與協同處理 88 4.3.2 思路抽象 91 4.4 問題優化 93 4.4.1 設計優化 93 4.4.2 關鍵代碼 94 4.4.3 鏈表與for迴圈的區別 101 4.5 總結 104 第5章 複用的人性化設計 105 5.1 拋出問題 105 5.2 問題分析 112 5.2.1 大量冗餘碼 112 5.2.2 AOP切割原子邏輯 114 5.3 Spring中事務的封裝與複用 118 5.3.1 Spring的交易處理 118 5.3.2 思路抽象 123 5.4 問題優化 125 5.4.1 注解設計 128 5.4.2 定義切面邏輯 129 5.4.3 定義攔截器 134 5.5 總結 137 第6章 遮罩外部依賴的防火牆設計 139 6.1 拋出問題 139 6.2 問題分析 140 6.2.1 服務雪崩 140 6.2.2 邏輯入侵 146 6.3 思路抽象 149 6.4 問題優化 151 6.4.1 優化對接層 151 6.4.2 構建防腐層 152 6.5 總結 154 第7章 事件的分散性與協議化封裝 157 7.1 拋出問題 157 7.2 問題分析 160 7.2.1 擴展類爆炸 160 7.2.2 擴展機制與監聽機制的錯用 161 7.3 WebSocket事件的封裝與協議化 164 7.3.1 WebSocket 164 7.3.2 通信設計 166 7.3.3 思路抽象 171 7.4 問題優化 174 7.4.1 生產者視角 174 7.4.2 消費者視角 178 7.5 總結 182 第8章 基於Reactor模式的系統優化 185 8.1 拋出問題 185 8.2 問題分析 187 8.2.1 加機器 187 8.2.2 串列調用改為併發調用 187 8.2.3 預處理 188 8.3 Netty中的Reactor模式 188 8.3.1 Netty概述 188 8.3.2 BIO與NIO 189 8.3.3 Reactor程式設計模型 192 8.3.4 思路抽象 197 8.4 問題優化 199 8.4.1 方案設計 199 8.4.2 代碼優化 201 8.5 總結 216 第9章 代碼邊界的延伸——善用SDK 217 9.1 拋出問題 217 9.2 問題分析與優化 217 9.2.1 SDK與API的區別 218 9.2.2 SDK可以解決的問題 219 9.2.3 SDK缺點與解決 221
郝佳,前阿里巴巴高級架構師,現碩磐智慧首席架構師,一直專注於中介軟體領域與資料服務領域的研究和開發;擅長系統的性能優化、系統設計與大資料服務處理,熱衷於研究各種優秀的開源框架,尤其對Spring、MyBatis、JMS、Tomcat等源碼有深刻的理解和認識;擁有4項技術專利,寫作出版的書《Spring源碼深度解析》深受讀者好評。
客服公告
热门活动
订阅电子报