|
-- 會員 / 註冊 --
|
|
|
|
架構師的自我修煉:技術、架構和未來 ( 簡體 字) |
作者:李智慧 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 54502 詢問書籍請說出此書號!【缺書】 NT售價: 445 元 |
出版日:5/1/2021 |
頁數:316 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111679363 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書共38章,分四個部分。 第 一部分是架構師的基礎知識修煉。軟件的基礎知識原理主要是操作系統、數據結構、數據庫原理等,書中會從常見的問題入手,直達這些基礎技術本質的原理,并覆蓋這些基礎技術的關鍵技術點,幫助讀者理解這些基礎技術原理和日常開發工作的關聯關系,對這些基礎技術有一個全新的認知。 第二部分是架構師的程序設計修煉。講述如何設計一個強大靈活、易復用、易維護的軟件,在這個過程中,應該依賴哪些工具和方法,遵循哪些原則和思想,使用哪些模式和手段。 第三部分是架構師的架構方法修煉。圍繞目前主要的互聯網分布式架構以及大數據、物聯網架構分析這些架構背后的原理,詳解它們都遵循了怎樣的驅動力和設計思想,以及如何通過這些技術實現系統的高可用和高性能。 第四部分是架構師的思維修煉。軟件開發是一個實踐性很強的活動,如果只是學習技術,那就是在紙上談兵。只有將知識技能應用到工作實踐中,才能真正體會到技術的關鍵點在哪里。如何在工作中處理好各種關系,得到充分的授權和信任,在工作中實踐自己的技術思想,并為公司創造更多的價值,使自己的技術成長和職業發展進入互相促進的正向通道,也是架構師需要修煉與提升的。 |
目錄:第一部分 架構師的基礎知識修煉 第1章 操作系統原理:程序是如何運行和崩潰的 2 1.1 程序是如何運行起來的 2 1.2 一臺計算機如何同時處理數以百計的任務 4 1.3 系統為什么會變慢,為什么會崩潰 5 1.4 小結 7 第2章 數據結構原理:Hash表的時間復雜度為什么是O(1) 8 2.1 數組的結構 8 2.2 鏈表的結構 9 2.3 Hash表的結構 10 2.4 棧的結構 12 2.5 隊列的結構 13 2.6 樹的結構 14 2.7 小結 14 第3章 Java虛擬機原理:JVM為什么被稱為機器 16 3.1 JVM的構造 17 3.2 JVM的垃圾回收 19 3.3 Web應用程序在JVM中的執行過程 22 3.4 小結 24 第4章 網絡編程原理:一個字符的互聯網之旅 25 4.1 DNS域名解析原理 26 4.2 CDN 27 4.3 HTTP的結構 28 4.4 TCP的結構 29 4.5 鏈路層負載均衡原理 32 4.6 小結 33 第5章 文件系統原理:用1分鐘遍歷一個100TB的文件 34 5.1 硬盤結構原理 35 5.2 文件系統原理 36 5.3 RAID硬盤陣列原理 37 5.4 分布式文件系統架構原理 39 5.5 小結 40 第6章 數據庫原理:SQL為什么要預編譯 42 6.1 數據庫架構與SQL執行過程 43 6.2 使用PrepareStatement執行SQL的好處 45 6.3 數據庫文件存儲與索引工作原理 46 6.4 小結 48 第7章 編程語言原理:面向對象編程是編程的終極形態嗎 49 7.1 軟件編程的遠古時代 49 7.2 機器與匯編語言時代 51 7.3 高級編程語言時代 51 7.4 面向對象編程時代 52 7.5 編程語言的未來 53 7.6 小結 54 第二部分 架構師的程序設計修煉 第8章 軟件設計的方法論:軟件為什么要建模 56 8.1 什么是軟件建模 57 8.2 4+1視圖模型 58 8.3 UML建模 59 8.4 小結 60 第9章 軟件設計實踐:使用UML完成一個設計文檔 61 9.1 用類圖設計對象模型 61 9.2 用序列圖描述系統調用 62 9.3 用組件圖進行模塊設計 63 9.4 用部署圖描述系統物理架構 64 9.5 使用用例圖進行需求分析 65 9.6 用狀態圖描述對象狀態變遷 66 9.7 用活動圖描述調用流程 66 9.8 使用合適的UML模型構建一個軟件設計文檔 67 9.9 軟件架構設計文檔示例模板 68 9.10 小結 74 第10章 軟件設計的目的:糟糕的程序差在哪里 75 10.1 糟糕的設計有多糟糕 76 10.2 一個設計“腐壞”的例子 77 10.3 解決之道 78 10.4 小結 80 第11章 軟件設計的開閉原則:不修改代碼卻能實現需求變更 81 11.1 什么是開閉原則 81 11.2 一個違反開閉原則的例子 82 11.3 使用策略模式實現開閉原則 84 11.4 使用適配器模式實現開閉原則 85 11.5 使用觀察者模式實現開閉原則 86 11.6 使用模板方法模式實現開閉原則 88 11.7 小結 89 第12章 軟件設計的依賴倒置原則:不依賴代碼卻可以復用它的功能 91 12.1 依賴倒置原則 91 12.2 依賴倒置的關鍵是接口所有權的倒置 93 12.3 使用依賴倒置來實現高層模塊復用 94 12.4 小結 96 第13章 軟件設計的里氏替換原則:正方形可以繼承長方形嗎 97 13.1 里氏替換原則 98 13.2 一個違反里氏替換原則的例子 99 13.3 正方形可以繼承長方形嗎 100 13.4 子類不能比父類更嚴格 101 13.5 小結 102 第14章 軟件設計的單一職責原則:一個類文件打開后最好不要超過一屏 104 14.1 單一職責原則 107 14.2 一個違反單一職責原則的例子 107 14.3 從Web應用架構演進看單一職責原則 108 14.4 小結 110 第15章 軟件設計的接口隔離原則:如何對類的調用者隱藏類的公有方法 112 15.1 接口隔離原則 113 15.2 一個使用接口隔離原則優化的例子 114 15.3 接口隔離原則在迭代器設計模式中的應用 117 15.4 小結 117 第16章 設計模式基礎:不會靈活應用設計模式,就沒有掌握面向對象編程 119 16.1 面向對象編程的本質是多態 119 16.2 設計模式的精髓是對多態的使用 121 16.3 小結 123 第17章 設計模式應用:編程框架中的設計模式 125 17.1 什么是框架 125 17.2 Web容器中的設計模式 127 17.3 JUnit中的設計模式 129 17.4 小結 132 第18章 反應式編程框架設計:如何使程序調用不阻塞等待,立即響應 133 18.1 反應式編程 135 18.2 反應式編程框架Flower的基本原理 135 18.3 反應式編程框架Flower的設計方法 138 18.4 反應式編程框架Flower的落地效果 140 18.5 小結 141 第19章 組件設計原則:組件的邊界在哪里 143 19.1 組件內聚原則 144 19.2 組件耦合原則 145 19.3 小結 147 第20章 領域驅動設計:35歲的程序員應該寫什么樣的代碼 148 20.1 領域模型模式 149 20.2 領域驅動設計 151 20.3 小結 154 第三部分 架構師的架構方法修煉 第21章 分布式架構:如何應對高并發的用戶請求 156 21.1 垂直伸縮與水平伸縮 157 21.2 互聯網分布式架構演化 157 21.3 小結 163 第22章 緩存架構:減少不必要的計算 165 22.1 通讀緩存 166 22.2 旁路緩存 168 22.3 緩存注意事項 171 22.4 小結 173 第23章 異步架構:避免互相依賴的系統間耦合 174 23.1 使用消息隊列實現異步架構 175 23.2 消息隊列異步架構的好處 178 23.3 小結 180 第24章 負載均衡架構:用10行代碼實現一個負載均衡服務 181 24.1 HTTP重定向負載均衡 181 24.2 DNS負載均衡 183 24.3 反向代理負載均衡 184 24.4 IP負載均衡 184 24.5 數據鏈路層負載均衡 186 24.6 小結 187 第25章 數據存儲架構:改善系統的數據存儲能力 188 25.1 數據庫主從復制 188 25.2 數據庫分片 190 25.3 關系數據庫的混合部署 193 25.4 NoSQL數據庫 196 25.5 小結 197 第26章 搜索引擎架構:瞬間完成海量數據檢索 199 26.1 搜索引擎倒排索引 199 26.2 搜索引擎結果排序 202 26.3 小結 205 第27章 微服務架構:微服務究竟是“靈丹”還是“毒藥” 206 27.1 單體架構的困難和挑戰 206 27.2 微服務框架原理 208 27.3 微服務架構的落地實踐 210 27.4 小結 211 第28章 高性能架構:除了代碼,還可以在哪些地方優化性能 212 28.1 性能指標 212 28.2 性能測試 213 28.3 性能優化 215 28.4 小結 219 第29章 高可用架構:淘寶應用升級時,為什么沒有停機 220 29.1 高可用的度量 221 29.2 高可用的架構 222 29.3 小結 225 第30章 安全性架構:為什么說用戶密碼泄露是程序員的問題 227 30.1 數據加密與解密 227 30.2 HTTP攻擊與防護 230 30.3 小結 233 第31章 大數據架構:思想和原理 234 31.1 HDFS分布式文件存儲架構 235 31.2 MapReduce大數據計算架構 236 31.3 Hive大數據倉庫架構 238 31.4 Spark快速大數據計算架構 240 31.5 大數據流計算架構 242 31.6 小結 242 第32章 AI與物聯網架構:從智能引擎到物聯網平臺 243 32.1 大數據平臺架構 244 32.2 智能推薦算法 245 32.3 物聯網大數據架構 249 32.4 小結 250 第33章 區塊鏈技術架構:區塊鏈到底能做什么 251 33.1 比特幣與區塊鏈原理 251 33.2 聯盟鏈與區塊鏈的企業級應用 255 33.3 小結 257 第四部分 架構師的思維修煉 第34章 技術修煉之道:同樣工作十幾年,為什么有的人成為資深架構師,有的人失業 260 34.1 德雷福斯模型 261 34.2 如何在工作中成長 263 34.3 小結 264 第35章 技術進階之道:你和世界上頂級的程序員差幾個等級 265 35.1 軟件技術的生態江湖與等級體系 265 35.2 技術進階之捷徑 267 35.3 小結 269 第36章 技術落地之道:你真的知道自己要解決的問題是什么嗎 270 36.1 確定會議真正要解決的問題是什么 271 36.2 不需要去解決別人的問題,提醒他問題的存在即可 272 36.3 去解決那些被人們習以為常而忽略了的問題 273 36.4 小結 273 第37章 技術溝通之道:如何解決問題 275 37.1 讓有能力解決問題的人感受到問題的存在 275 37.2 “直言有諱” 276 37.3 想解決一個大家都不關注的問題,可以等問題變得更糟 277 37.4 如果不填老師想要的答案,你就得不了分 278 37.5 小結 278 第38章 技術管理之道:真的要轉管理嗎 280 38.1 彼得定律 281 38.2 用目標驅動 282 38.3 小結 283 附錄A 軟件開發技術的第一性原理 284 附錄B 我的架構師成長之路 287 附錄C 無處不在的架構之美 293 附錄D 軟件架構師之道 298 |
序: |
|