讀源碼學架構:系統架構師思維訓練之道
郝佳
買這商品的人也買了...
-
$165編程風格 : 好代碼的邏輯 (Exercises in Programming Style)
-
$300$270 -
$480$336 -
$505ROS 機器人編程實戰 (Robot Operating System Cookbook: Over 70 recipes to help you master advanced ROS concepts)
-
$407Java 修煉指南:高頻源碼解析
-
$505編程的邏輯:如何用面向對象方法實現復雜業務需求
-
$680$537 -
$659$626 -
$454面向對象的思考過程, 5/e (The Object-Oriented Thought Process, 5/e)
-
$539$512 -
$347OKR 實踐手冊
-
$580$458 -
$551Unity 3D 從入門到實戰
-
$454前端工程質量保障體系實踐
-
$599$569 -
$500$390 -
$378擁抱開源, 2/e
-
$407通信網絡基礎設施電氣安全
-
$580$458 -
$714$678 -
$780$663 -
$620$484 -
$390$257 -
$750$592 -
$650$487
相關主題
商品描述
《讀源碼學架構:系統架構師思維訓練之道》以軟件架構師的能力培養為切入點,結合作者在過去10多年的工作中積累的經驗,介紹了一名合格甚至優秀的架構師應該具備的能力。
《讀源碼學架構:系統架構師思維訓練之道》分為4篇,總計9章,基本涵蓋了大部分生產環境下的系統設計原則以及方案。本書主要內容有基本設計原則、輕松應對後續的變化、優雅地暴露內部屬性、復雜邏輯的拆解與協同、復用的人性化設計、屏蔽外部依賴的防火牆設計、事件的分散性與協議化封裝、基於Reactor模式的系統優化、代碼邊界的延伸——善用SDK。
《讀源碼學架構:系統架構師思維訓練之道》盡管內容篇幅短小,但是信息量相當密集。本書適合具有一定編程經驗,在業務上仍然有追求,希望能晉升為軟件架構師的軟件開發人員閱讀。同時,對設計模式感興趣的初級開發人員,可以通過本書掌握與架構設計相關的知識。
作者簡介
郝佳,前阿里巴巴高级架构师,现硕磐智能首席架构师,一直专注于中间件领域与数据服务领域的研究和开发;擅长系统的性能优化、系统设计与大数据服务处理,热衷于研究各种优秀的开源框架,尤其对Spring、MyBatis、JMS、Tomcat等源码有深刻的理解和认识;拥有4项技术专利,写作出版的书《Spring源码深度解析》深受读者好评。
目錄大綱
第 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