注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件工程及軟件方法學架構師的自我修煉:技術、架構和未來

架構師的自我修煉:技術、架構和未來

架構師的自我修煉:技術、架構和未來

定 價:¥89.00

作 者: 李智慧 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111679363 出版時間: 2021-05-01 包裝: 平裝
開本: 16開 頁數: 316 字數:  

內容簡介

  架構師的工作包羅萬象,從開發(fā)基礎框架到設計軟件架構,從優(yōu)化系統(tǒng)性能到修復重要Bug,從新技術選型到做出關鍵技術決策,從指導工程師開發(fā)到溝通、協(xié)調各種內外部關系。想要成為一個優(yōu)秀的軟件架構師,需要經過漫長的修煉,構建起自己的軟件開發(fā)技術體系。但是一切看似紛繁復雜的技術技巧,均有其核心和基本的原理。 本書對架構師在職業(yè)進階道路上必須牢固掌握的各項技術技能進行了梳理,涵蓋基礎知識、程序設計、系統(tǒng)架構、溝通管理4大方面。 本書包含38章,每一章都用一個軟件開發(fā)中常見又經典的問題引出,深入淺出地剖析這個技術點背后的核心原理與外延擴展,進而幫助讀者建立起自己的架構師知識體系。第1部分是架構師的基礎知識修煉。軟件的基礎知識原理主要是操作系統(tǒng)、數據結構、數據庫原理等,書中會從常見的問題入手,直達這些基礎技術本質的原理,并覆蓋這些基礎技術的關鍵技術點,幫助讀者理解這些基礎技術原理和日常開發(fā)工作的關聯關系,對這些基礎技術有一個全新的認知。第2部分是架構師的程序設計修煉。講述如何設計一個強大靈活、易復用、易維護的軟件,在這個過程中,應該依賴哪些工具和方法,遵循哪些原則和思想,使用哪些模式和手段。第3部分是架構師的架構方法修煉。圍繞目前主要的互聯網分布式架構以及大數據、物聯網架構分析這些架構背后的原理,詳解它們都遵循了怎樣的驅動力和設計思想,以及如何通過這些技術實現系統(tǒng)的高可用和高性能。第4部分是架構師的思維修煉。軟件開發(fā)是一個實踐性很強的活動,如果只是學習技術,那就是在紙上談兵。只有將知識技能應用到工作實踐中,才能真正體會到技術的關鍵點在哪里。如何在工作中處理好各種關系,得到充分的授權和信任,在工作中實踐自己的技術思想,并為公司創(chuàng)造更多的價值,使自己的技術成長和職業(yè)發(fā)展進入互相促進的正向通道,也是架構師需要修煉與提升的。

作者簡介

  李智慧, 資深架構專家,同程旅行交通首席架構師,曾在NEC、阿里巴巴、Intel等知名企業(yè)擔任架構師,也曾在WiFi萬能鑰匙等企業(yè)擔任CTO。長期從事大數據、大型網站的架構和研發(fā)工作,領導設計過多個日活用戶在千萬級以上的互聯網系統(tǒng)架構,實戰(zhàn)經驗豐富。曾設計、開發(fā)過 Web 服務器防火墻、分布式NoSQL 系統(tǒng)、大數據倉庫引擎、反應式編程框架等各種類型的軟件系統(tǒng)。Apache Spark代碼貢獻者,騰訊云TVP,著有暢銷書《大型網站技術架構》,同時也是極客時間《從0開始學大數據》《后端技術面試38講》等專欄的作者。

圖書目錄

【第一部分  架構師的基礎知識修煉】
第1章 操作系統(tǒng)原理:程序是如何運行和崩潰的 2
1.1 程序是如何運行起來的 2
1.2 一臺計算機如何同時處理數以百計的任務 4
1.3 系統(tǒng)為什么會變慢,為什么會崩潰 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中的執(zhí)行過程 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章 文件系統(tǒng)原理:用1分鐘遍歷一個100TB的文件 34
5.1 硬盤結構原理 35
5.2 文件系統(tǒng)原理 36
5.3 RAID硬盤陣列原理 37
5.4 分布式文件系統(tǒng)架構原理 39
5.5 小結 40
第6章 數據庫原理:SQL為什么要預編譯 42
6.1 數據庫架構與SQL執(zhí)行過程 43
6.2 使用PrepareStatement執(zhí)行SQL的好處 45
6.3 數據庫文件存儲與索引工作原理 46
6.4 小結 48
第7章 編程語言原理:面向對象編程是編程的終極形態(tài)嗎 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 用序列圖描述系統(tǒng)調用 62
9.3 用組件圖進行模塊設計 63
9.4 用部署圖描述系統(tǒng)物理架構 64
9.5 使用用例圖進行需求分析 65
9.6 用狀態(tài)圖描述對象狀態(tài)變遷 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 一個使用接口隔離原則優(yōu)化的例子 114
15.3 接口隔離原則在迭代器設計模式中的應用 117
15.4 小結 117
第16章 設計模式基礎:不會靈活應用設計模式,就沒有掌握面向對象編程 119
16.1 面向對象編程的本質是多態(tài) 119
16.2 設計模式的精髓是對多態(tài)的使用 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章 分布式架構:如何應對高并發(fā)的用戶請求 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章 異步架構:避免互相依賴的系統(tǒng)間耦合 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章 數據存儲架構:改善系統(tǒng)的數據存儲能力 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 單體架構的困難和挑戰(zhàn) 206
27.2 微服務框架原理 208
27.3 微服務架構的落地實踐 210
27.4 小結 211
第28章 高性能架構:除了代碼,還可以在哪些地方優(yōu)化性能 212
28.1 性能指標 212
28.2 性能測試 213
28.3 性能優(yōu)化 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章 區(qū)塊鏈技術架構:區(qū)塊鏈到底能做什么 251
33.1 比特幣與區(qū)塊鏈原理 251
33.2 聯盟鏈與區(qū)塊鏈的企業(yè)級應用 255
33.3 小結 257

【第四部分  架構師的思維修煉】
第34章 技術修煉之道:同樣工作十幾年,為什么有的人成為資深架構師,有的人失業(yè) 260
34.1 德雷福斯模型 261
34.2 如何在工作中成長 263
34.3 小結 264
第35章 技術進階之道:你和世界上頂級的程序員差幾個等級 265
35.1 軟件技術的生態(tài)江湖與等級體系 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 軟件開發(fā)技術的第一性原理 284
附錄B 我的架構師成長之路 287
附錄C 無處不在的架構之美 293
附錄D 軟件架構師之道 298

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號