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

架構(gòu)師的自我修煉:技術(shù)、架構(gòu)和未來

架構(gòu)師的自我修煉:技術(shù)、架構(gòu)和未來

定 價:¥89.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

【第一部分  架構(gòu)師的基礎(chǔ)知識修煉】
第1章 操作系統(tǒng)原理:程序是如何運行和崩潰的 2
1.1 程序是如何運行起來的 2
1.2 一臺計算機如何同時處理數(shù)以百計的任務(wù) 4
1.3 系統(tǒng)為什么會變慢,為什么會崩潰 5
1.4 小結(jié) 7
第2章 數(shù)據(jù)結(jié)構(gòu)原理:Hash表的時間復雜度為什么是O(1) 8
2.1 數(shù)組的結(jié)構(gòu) 8
2.2 鏈表的結(jié)構(gòu) 9
2.3 Hash表的結(jié)構(gòu) 10
2.4 棧的結(jié)構(gòu) 12
2.5 隊列的結(jié)構(gòu) 13
2.6 樹的結(jié)構(gòu) 14
2.7 小結(jié) 14
第3章 Java虛擬機原理:JVM為什么被稱為機器 16
3.1 JVM的構(gòu)造 17
3.2 JVM的垃圾回收 19
3.3 Web應(yīng)用程序在JVM中的執(zhí)行過程 22
3.4 小結(jié) 24
第4章 網(wǎng)絡(luò)編程原理:一個字符的互聯(lián)網(wǎng)之旅 25
4.1 DNS域名解析原理 26
4.2 CDN 27
4.3 HTTP的結(jié)構(gòu) 28
4.4 TCP的結(jié)構(gòu) 29
4.5 鏈路層負載均衡原理 32
4.6 小結(jié) 33
第5章 文件系統(tǒng)原理:用1分鐘遍歷一個100TB的文件 34
5.1 硬盤結(jié)構(gòu)原理 35
5.2 文件系統(tǒng)原理 36
5.3 RAID硬盤陣列原理 37
5.4 分布式文件系統(tǒng)架構(gòu)原理 39
5.5 小結(jié) 40
第6章 數(shù)據(jù)庫原理:SQL為什么要預編譯 42
6.1 數(shù)據(jù)庫架構(gòu)與SQL執(zhí)行過程 43
6.2 使用PrepareStatement執(zhí)行SQL的好處 45
6.3 數(shù)據(jù)庫文件存儲與索引工作原理 46
6.4 小結(jié) 48
第7章 編程語言原理:面向?qū)ο缶幊淌蔷幊痰慕K極形態(tài)嗎 49
7.1 軟件編程的遠古時代 49
7.2 機器與匯編語言時代 51
7.3 高級編程語言時代 51
7.4 面向?qū)ο缶幊虝r代 52
7.5 編程語言的未來 53
7.6 小結(jié) 54

【第二部分  架構(gòu)師的程序設(shè)計修煉】
第8章 軟件設(shè)計的方法論:軟件為什么要建模 56
8.1 什么是軟件建模 57
8.2 4+1視圖模型 58
8.3 UML建模 59
8.4 小結(jié) 60
第9章 軟件設(shè)計實踐:使用UML完成一個設(shè)計文檔 61
9.1 用類圖設(shè)計對象模型 61
9.2 用序列圖描述系統(tǒng)調(diào)用 62
9.3 用組件圖進行模塊設(shè)計 63
9.4 用部署圖描述系統(tǒng)物理架構(gòu) 64
9.5 使用用例圖進行需求分析 65
9.6 用狀態(tài)圖描述對象狀態(tài)變遷 66
9.7 用活動圖描述調(diào)用流程 66
9.8 使用合適的UML模型構(gòu)建一個軟件設(shè)計文檔 67
9.9 軟件架構(gòu)設(shè)計文檔示例模板 68
9.10 小結(jié) 74
第10章 軟件設(shè)計的目的:糟糕的程序差在哪里 75
10.1 糟糕的設(shè)計有多糟糕 76
10.2 一個設(shè)計“腐壞”的例子 77
10.3 解決之道 78
10.4 小結(jié) 80
第11章 軟件設(shè)計的開閉原則:不修改代碼卻能實現(xiàn)需求變更 81
11.1 什么是開閉原則 81
11.2 一個違反開閉原則的例子 82
11.3 使用策略模式實現(xiàn)開閉原則 84
11.4 使用適配器模式實現(xiàn)開閉原則 85
11.5 使用觀察者模式實現(xiàn)開閉原則 86
11.6 使用模板方法模式實現(xiàn)開閉原則 88
11.7 小結(jié) 89
第12章 軟件設(shè)計的依賴倒置原則:不依賴代碼卻可以復用它的功能 91
12.1 依賴倒置原則 91
12.2 依賴倒置的關(guān)鍵是接口所有權(quán)的倒置 93
12.3 使用依賴倒置來實現(xiàn)高層模塊復用 94
12.4 小結(jié) 96
第13章 軟件設(shè)計的里氏替換原則:正方形可以繼承長方形嗎 97
13.1 里氏替換原則 98
13.2 一個違反里氏替換原則的例子 99
13.3 正方形可以繼承長方形嗎 100
13.4 子類不能比父類更嚴格 101
13.5 小結(jié) 102
第14章 軟件設(shè)計的單一職責原則:一個類文件打開后最好不要超過一屏 104
14.1 單一職責原則 107
14.2 一個違反單一職責原則的例子 107
14.3 從Web應(yīng)用架構(gòu)演進看單一職責原則 108
14.4 小結(jié) 110
第15章 軟件設(shè)計的接口隔離原則:如何對類的調(diào)用者隱藏類的公有方法 112
15.1 接口隔離原則 113
15.2 一個使用接口隔離原則優(yōu)化的例子 114
15.3 接口隔離原則在迭代器設(shè)計模式中的應(yīng)用 117
15.4 小結(jié) 117
第16章 設(shè)計模式基礎(chǔ):不會靈活應(yīng)用設(shè)計模式,就沒有掌握面向?qū)ο缶幊?119
16.1 面向?qū)ο缶幊痰谋举|(zhì)是多態(tài) 119
16.2 設(shè)計模式的精髓是對多態(tài)的使用 121
16.3 小結(jié) 123
第17章 設(shè)計模式應(yīng)用:編程框架中的設(shè)計模式 125
17.1 什么是框架 125
17.2 Web容器中的設(shè)計模式 127
17.3 JUnit中的設(shè)計模式 129
17.4 小結(jié) 132
第18章 反應(yīng)式編程框架設(shè)計:如何使程序調(diào)用不阻塞等待,立即響應(yīng) 133
18.1 反應(yīng)式編程 135
18.2 反應(yīng)式編程框架Flower的基本原理 135
18.3 反應(yīng)式編程框架Flower的設(shè)計方法 138
18.4 反應(yīng)式編程框架Flower的落地效果 140
18.5 小結(jié) 141
第19章 組件設(shè)計原則:組件的邊界在哪里 143
19.1 組件內(nèi)聚原則 144
19.2 組件耦合原則 145
19.3 小結(jié) 147
第20章 領(lǐng)域驅(qū)動設(shè)計:35歲的程序員應(yīng)該寫什么樣的代碼 148
20.1 領(lǐng)域模型模式 149
20.2 領(lǐng)域驅(qū)動設(shè)計 151
20.3 小結(jié) 154

【第三部分  架構(gòu)師的架構(gòu)方法修煉】
第21章 分布式架構(gòu):如何應(yīng)對高并發(fā)的用戶請求 156
21.1 垂直伸縮與水平伸縮 157
21.2 互聯(lián)網(wǎng)分布式架構(gòu)演化 157
21.3 小結(jié) 163
第22章 緩存架構(gòu):減少不必要的計算 165
22.1 通讀緩存 166
22.2 旁路緩存 168
22.3 緩存注意事項 171
22.4 小結(jié) 173
第23章 異步架構(gòu):避免互相依賴的系統(tǒng)間耦合 174
23.1 使用消息隊列實現(xiàn)異步架構(gòu) 175
23.2 消息隊列異步架構(gòu)的好處 178
23.3 小結(jié) 180
第24章 負載均衡架構(gòu):用10行代碼實現(xiàn)一個負載均衡服務(wù) 181
24.1 HTTP重定向負載均衡 181
24.2 DNS負載均衡 183
24.3 反向代理負載均衡 184
24.4 IP負載均衡 184
24.5 數(shù)據(jù)鏈路層負載均衡 186
24.6 小結(jié) 187
第25章 數(shù)據(jù)存儲架構(gòu):改善系統(tǒng)的數(shù)據(jù)存儲能力 188
25.1 數(shù)據(jù)庫主從復制 188
25.2 數(shù)據(jù)庫分片 190
25.3 關(guān)系數(shù)據(jù)庫的混合部署 193
25.4 NoSQL數(shù)據(jù)庫 196
25.5 小結(jié) 197
第26章 搜索引擎架構(gòu):瞬間完成海量數(shù)據(jù)檢索 199
26.1 搜索引擎倒排索引 199
26.2 搜索引擎結(jié)果排序 202
26.3 小結(jié) 205
第27章 微服務(wù)架構(gòu):微服務(wù)究竟是“靈丹”還是“毒藥” 206
27.1 單體架構(gòu)的困難和挑戰(zhàn) 206
27.2 微服務(wù)框架原理 208
27.3 微服務(wù)架構(gòu)的落地實踐 210
27.4 小結(jié) 211
第28章 高性能架構(gòu):除了代碼,還可以在哪些地方優(yōu)化性能 212
28.1 性能指標 212
28.2 性能測試 213
28.3 性能優(yōu)化 215
28.4 小結(jié) 219
第29章 高可用架構(gòu):淘寶應(yīng)用升級時,為什么沒有停機 220
29.1 高可用的度量 221
29.2 高可用的架構(gòu) 222
29.3 小結(jié) 225
第30章 安全性架構(gòu):為什么說用戶密碼泄露是程序員的問題 227
30.1 數(shù)據(jù)加密與解密 227
30.2 HTTP攻擊與防護 230
30.3 小結(jié) 233
第31章 大數(shù)據(jù)架構(gòu):思想和原理 234
31.1 HDFS分布式文件存儲架構(gòu) 235
31.2 MapReduce大數(shù)據(jù)計算架構(gòu) 236
31.3 Hive大數(shù)據(jù)倉庫架構(gòu) 238
31.4 Spark快速大數(shù)據(jù)計算架構(gòu) 240
31.5 大數(shù)據(jù)流計算架構(gòu) 242
31.6 小結(jié) 242
第32章 AI與物聯(lián)網(wǎng)架構(gòu):從智能引擎到物聯(lián)網(wǎng)平臺 243
32.1 大數(shù)據(jù)平臺架構(gòu) 244
32.2 智能推薦算法 245
32.3 物聯(lián)網(wǎng)大數(shù)據(jù)架構(gòu) 249
32.4 小結(jié) 250
第33章 區(qū)塊鏈技術(shù)架構(gòu):區(qū)塊鏈到底能做什么 251
33.1 比特幣與區(qū)塊鏈原理 251
33.2 聯(lián)盟鏈與區(qū)塊鏈的企業(yè)級應(yīng)用 255
33.3 小結(jié) 257

【第四部分  架構(gòu)師的思維修煉】
第34章 技術(shù)修煉之道:同樣工作十幾年,為什么有的人成為資深架構(gòu)師,有的人失業(yè) 260
34.1 德雷福斯模型 261
34.2 如何在工作中成長 263
34.3 小結(jié) 264
第35章 技術(shù)進階之道:你和世界上頂級的程序員差幾個等級 265
35.1 軟件技術(shù)的生態(tài)江湖與等級體系 265
35.2 技術(shù)進階之捷徑 267
35.3 小結(jié) 269
第36章 技術(shù)落地之道:你真的知道自己要解決的問題是什么嗎 270
36.1 確定會議真正要解決的問題是什么 271
36.2 不需要去解決別人的問題,提醒他問題的存在即可 272
36.3 去解決那些被人們習以為常而忽略了的問題 273
36.4 小結(jié) 273
第37章 技術(shù)溝通之道:如何解決問題 275
37.1 讓有能力解決問題的人感受到問題的存在 275
37.2 “直言有諱” 276
37.3 想解決一個大家都不關(guān)注的問題,可以等問題變得更糟 277
37.4 如果不填老師想要的答案,你就得不了分 278
37.5 小結(jié) 278
第38章 技術(shù)管理之道:真的要轉(zhuǎn)管理嗎 280
38.1 彼得定律 281
38.2 用目標驅(qū)動 282
38.3 小結(jié) 283
附錄A 軟件開發(fā)技術(shù)的第一性原理 284
附錄B 我的架構(gòu)師成長之路 287
附錄C 無處不在的架構(gòu)之美 293
附錄D 軟件架構(gòu)師之道 298

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號