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