本書主要包含軟件開發(fā)普通程序員如何向系統(tǒng)架構(gòu)師進行轉(zhuǎn)型的一些思路、方法和工程實踐。全書共分為四大篇幅內(nèi)容,包括:
1. 程序員向架構(gòu)師轉(zhuǎn)型篇,剖析架構(gòu)師角色,提供架構(gòu)師的視圖視角,以及程序員如何向架構(gòu)師成功轉(zhuǎn)型的思路。
2. 系統(tǒng)架構(gòu)設(shè)計知識領(lǐng)域篇,介紹軟件架構(gòu)體系結(jié)構(gòu)、領(lǐng)域驅(qū)動設(shè)計、分布式系統(tǒng)架構(gòu)、技術(shù)知識體系等架構(gòu)師所應具備的主要技術(shù)體系內(nèi)容。
3. 軟件開發(fā)系統(tǒng)工程篇,介紹軟件工程學、業(yè)務架構(gòu)設(shè)計、敏捷方法與實踐、軟件交付模型等架構(gòu)師所應具備的系統(tǒng)方法論和相關(guān)工程實踐。
4. 架構(gòu)師軟能力篇,包括架構(gòu)師與外部環(huán)境、自身團隊和轉(zhuǎn)型所需的意識形態(tài)。
鄭天民,網(wǎng)名天涯蘭,日本足利工業(yè)大學信息管理學碩士,10年左右軟件行業(yè)從業(yè)經(jīng)驗,在醫(yī)療、安防和電商行業(yè)都有所涉及,主持和參與過多個大型企業(yè)級應用和移動互聯(lián)網(wǎng)系統(tǒng)的開發(fā)和管理工作,先后擔任系統(tǒng)分析架構(gòu)師、部門經(jīng)理、技術(shù)總監(jiān)等職務,目前就職于一家業(yè)界領(lǐng)先的電商獨角獸企業(yè)。北風網(wǎng)特邀講師,講授系統(tǒng)架構(gòu)與技術(shù)管理相關(guān)課程。善于提煉和抽象核心內(nèi)容,善于知識分享和技術(shù)人員培養(yǎng),對系統(tǒng)架構(gòu)設(shè)計和技術(shù)管理有豐富的經(jīng)驗和較深的理解。
第一篇 程序員向架構(gòu)師轉(zhuǎn)型概述
第1章 程序員向架構(gòu)師轉(zhuǎn)型 2
1.1 架構(gòu)設(shè)計基本概念 2
1.1.1 架構(gòu)的基本定義 2
1.1.2 架構(gòu)演進理論 4
1.1.3 架構(gòu)設(shè)計與系統(tǒng)工程 7
1.2 剖析架構(gòu)師角色 8
1.2.1 架構(gòu)師角色 8
1.2.2 當程序員遇到架構(gòu)師 10
1.3 架構(gòu)師的視圖和視角 11
1.3.1 架構(gòu)師的視圖 12
1.3.2 架構(gòu)師的視角 16
1.3.3 視圖視角與系統(tǒng)工程 18
1.4 程序員如何向架構(gòu)師成功轉(zhuǎn)型 19
1.4.1 轉(zhuǎn)型成功的三段式模型 19
1.4.2 轉(zhuǎn)型思維導圖 20
1.4.3 作為架構(gòu)師開展工作 21
1.5 本章小結(jié) 22
第二篇 軟件架構(gòu)設(shè)計知識體系
第2章 軟件架構(gòu)體系結(jié)構(gòu) 24
2.1 軟件體系結(jié)構(gòu) 24
2.2 架構(gòu)風格 25
2.2.1 分布式 25
2.2.2 事件驅(qū)動 28
2.2.3 系統(tǒng)結(jié)構(gòu) 31
2.2.4 消息總線 32
2.2.5 適配與擴展 33
2.3 架構(gòu)模式 35
2.3.1 數(shù)據(jù)訪問 35
2.3.2 服務定位 36
2.3.3 異步化 38
2.3.4 資源管理 39
2.3.5 依賴管理 41
2.4 架構(gòu)模型 44
2.5 本章小結(jié) 45
第3章 領(lǐng)域驅(qū)動設(shè)計 46
3.1 面向領(lǐng)域思想 46
3.1.1 架構(gòu)設(shè)計與領(lǐng)域驅(qū)動 46
3.1.2 領(lǐng)域驅(qū)動設(shè)計核心概念 47
3.1.3 案例介紹 47
3.2 面向領(lǐng)域的策略設(shè)計 48
3.2.1 通用語言 48
3.2.2 領(lǐng)域與上下文 48
3.2.3 領(lǐng)域驅(qū)動的架構(gòu)風格 51
3.2.4 案例策略設(shè)計 54
3.3 面向領(lǐng)域的技術(shù)設(shè)計 56
3.3.1 實體與值對象 56
3.3.2 領(lǐng)域服務 59
3.3.3 領(lǐng)域事件 60
3.3.4 聚合 62
3.3.5 資源庫 64
3.3.6 集成界限上下文 65
3.3.7 應用程序 67
3.3.8 案例技術(shù)設(shè)計 67
3.4 案例實現(xiàn) 69
3.5 本章小結(jié) 70
第4章 分布式系統(tǒng)架構(gòu)設(shè)計 72
4.1 分布式系統(tǒng) 73
4.2 RPC架構(gòu) 74
4.2.1 網(wǎng)絡通信 75
4.2.2 序列化 76
4.2.3 傳輸協(xié)議 77
4.2.4 服務調(diào)用 78
4.3 分布式服務架構(gòu) 81
4.3.1 負載均衡與集群容錯 81
4.3.2 服務路由 83
4.3.3 服務注冊中心 84
4.3.4 服務發(fā)布與調(diào)用 88
4.3.5 服務監(jiān)控與治理 90
4.4 分布式服務框架Dubbo剖析 91
4.4.1 Dubbo核心功能 91
4.4.2 Dubbo原理分析 94
4.5 微服務架構(gòu) 102
4.5.1 微服務實現(xiàn)策略 103
4.5.2 微服務實現(xiàn)技術(shù) 104
4.5.3 微服務實現(xiàn)案例 108
4.6 本章小結(jié) 109
第5章 架構(gòu)實現(xiàn)技術(shù)體系 110
5.1 緩存與性能優(yōu)化 111
5.1.1 性能概述 111
5.1.2 Memcached 112
5.1.3 Redis 116
5.1.4 Nginx 120
5.2 消息傳遞系統(tǒng) 122
5.2.1 消息中間件需求 122
5.2.2 JMS 123
5.2.3 AMQP 126
5.2.4 Kafka 129
5.3 企業(yè)服務總線 130
5.3.1 服務總線解決方案 130
5.3.2 集成化端點 136
5.4 數(shù)據(jù)分析處理 140
5.4.1 輕量級批處理 140
5.4.2 Spring Batch 142
5.5 安全性 147
5.5.1 安全性概述 147
5.5.2 安全性實現(xiàn)技術(shù) 148
5.6 本章小結(jié) 151
第三篇 軟件架構(gòu)設(shè)計系統(tǒng)工程
第6章 軟件工程學 154
6.1 軟件工程學概述 154
6.2 軟件實現(xiàn) 155
6.2.1 需求工程 155
6.2.2 系統(tǒng)建模與案例分析 157
6.2.3 軟件實現(xiàn)與架構(gòu)師 165
6.3 項目管理 166
6.3.1 項目管理體系 167
6.3.2 項目研發(fā)過程的透明化管理 173
6.3.3 項目管理與架構(gòu)師 178
6.4 過程改進 179
6.4.1 軟件過程模型 179
6.4.2 軟件過程改進 181
6.4.3 過程改進與架構(gòu)師 182
6.5 本章小結(jié) 183
第7章 敏捷方法與實踐 184
7.1 敏捷方法論概述 184
7.2 極限編程與工程實踐 186
7.2.1 極限編程方法 186
7.2.2 極限編程工程實踐 186
7.3 Scrum與過程管理 191
7.3.1 Scrum簡介 191
7.3.2 Scrum框架 192
7.3.3 如何進行敏捷回顧案例分析 194
7.4 敏捷方法論與架構(gòu)師 198
7.4.1 敏捷開發(fā)中架構(gòu)師的角色 198
7.4.2 識別和消除研發(fā)過程浪費 199
7.5 本章小結(jié) 204
第8章 軟件交付模型 205
8.1 軟件交付模型概述 205
8.2 配置管理 206
8.2.1 配置管理概述 206
8.2.2 配置管理模式與實踐 209
8.2.3 SVN/GIT基本應用與實踐 210
8.2.4 系統(tǒng)版本控制策略案例分析 214
8.3 持續(xù)集成 217
8.3.1 持續(xù)集成理念 217
8.3.2 Jenkins應用 219
8.4 交付工作流 219
8.5 本章小結(jié) 220
第四篇 架構(gòu)師軟技能
第9章 架構(gòu)師必備軟技能 222
9.1 架構(gòu)師與外部環(huán)境 222
9.1.1 政治與協(xié)商 223
9.1.2 溝通 224
9.1.3 郵件 227
9.2 架構(gòu)師與自身團隊 231
9.2.1 領(lǐng)導力 231
9.2.2 知識管理 232
9.2.3 人員管理 235
9.2.4 績效管理 237
9.3 架構(gòu)師與意識形態(tài) 240
9.3.1 思維模式 241
9.3.2 引入變化 241
9.4 本章小結(jié) 245
參考文獻 246