領(lǐng)域驅(qū)動設(shè)計學(xué)習手冊 版權(quán)信息
- ISBN:9787519876333
- 條形碼:9787519876333 ; 978-7-5198-7633-3
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
領(lǐng)域驅(qū)動設(shè)計學(xué)習手冊 本書特色
本書涵蓋了領(lǐng)域驅(qū)動設(shè)計范圍(從戰(zhàn)略到技術(shù)設(shè)計)的引人入勝且信息豐富的實踐指南。
構(gòu)建軟件變得比以往任何時候都更具挑戰(zhàn)性。作為一名開發(fā)人員,你不僅需要緊跟不斷變化的技術(shù)趨勢,還需要了解軟件背后的業(yè)務(wù)領(lǐng)域知識。這本學(xué)習手冊為你提供了一套領(lǐng)域驅(qū)動設(shè)計的核心模式、原則和實踐,用于分析業(yè)務(wù)領(lǐng)域、理解業(yè)務(wù)戰(zhàn)略,*重要的是,使軟件設(shè)計與業(yè)務(wù)需求保持一致。
本書作者向你展示了這些實踐如何指導(dǎo)和實現(xiàn)健壯的業(yè)務(wù)邏輯,構(gòu)建面向未來的軟件設(shè)計和體系架構(gòu)。你將跟隨作者一起探討領(lǐng)域驅(qū)動設(shè)計和其他方法之間的關(guān)系,以確保你做出滿足業(yè)務(wù)需求的體系架構(gòu)決策。你還將了解那些在初創(chuàng)公司實施領(lǐng)域驅(qū)動設(shè)計的真實故事。
“Vlad Khononov是一位獨特的思想家,多年來一直在應(yīng)用領(lǐng)域驅(qū)動設(shè)計來解決實際業(yè)務(wù)問題。他的想法不斷推動著整個領(lǐng)域驅(qū)動設(shè)計社區(qū)向前發(fā)展,本書將是對領(lǐng)域驅(qū)動設(shè)計新手的*佳啟示!薄狽ike Tune,技術(shù)咨詢專家
本書將指導(dǎo)面向?qū)ο箝_發(fā)人員、系統(tǒng)分析人員和設(shè)計人員合理地組織工作,使他們各有側(cè)重、彼此協(xié)作,有條不紊地進行復(fù)雜系統(tǒng)的開發(fā),幫助他們建立實用而豐富的領(lǐng)域模型,并由此創(chuàng)建長期適用的優(yōu)質(zhì)軟件。
領(lǐng)域驅(qū)動設(shè)計學(xué)習手冊 內(nèi)容簡介
本書的主要內(nèi)容有:如何分析公司的業(yè)務(wù)領(lǐng)域,了解你正在構(gòu)建的系統(tǒng)如何符合其競爭戰(zhàn)略。如何使用領(lǐng)域驅(qū)動設(shè)計的戰(zhàn)略和戰(zhàn)術(shù)工具來構(gòu)建有效的軟件解決方案,從而滿足業(yè)務(wù)需求。如何建立對你遇到的業(yè)務(wù)領(lǐng)域知識的共同理解。如何將系統(tǒng)分解為限界上下文。如何協(xié)調(diào)多個團隊的工作。如何在遺留系統(tǒng)改造項目中,循序漸進地引入領(lǐng)域驅(qū)動設(shè)計。
領(lǐng)域驅(qū)動設(shè)計學(xué)習手冊 目錄
目錄
序 1
前言 3
第0 章 引言 11
**部分 戰(zhàn)略設(shè)計
第1 章 分析業(yè)務(wù)領(lǐng)域 15
1.1 什么是業(yè)務(wù)領(lǐng)域 15
1.2 什么是子域 16
1.2.1 子域的類型 16
1.2.2 子域?qū)Ρ?.19
1.2.3 識別子域的邊界 23
1.3 領(lǐng)域分析案例 .26
1.3.1 Gigmaster 26
1.3.2 BusVNext 28
1.4 誰是領(lǐng)域?qū)<?.29
1.5 本章小結(jié)30
1.6 本章練習31
第2 章 探索領(lǐng)域知識 33
2.1 業(yè)務(wù)問題33
2.2 知識的發(fā)現(xiàn) 34
2.3 溝通 .34
2.4 什么是通用語言 36
2.5 業(yè)務(wù)語言37
2.5.1 場景 37
2.5.2 一致性 38
2.6 業(yè)務(wù)領(lǐng)域模型 .39
2.6.1 什么是模型 39
2.6.2 有效的模型 40
2.6.3 為業(yè)務(wù)領(lǐng)域建模 40
2.6.4 持續(xù)的努力 41
2.6.5 工具 41
2.6.6 挑戰(zhàn) 42
2.7 本章小結(jié)43
2.8 本章練習43
第3 章 管理領(lǐng)域復(fù)雜性 .45
3.1 不一致的模型 .45
3.2 什么是限界上下文 47
3.2.1 模型邊界 .48
3.2.2 精練通用語言 49
3.2.3 限界上下文的范圍 .49
3.3 限界上下文與子域的對比 50
3.3.1 子域 51
3.3.2 限界上下文 51
3.3.3 子域與限界上下文之間的交互 .51
3.4 邊界 .53
3.4.1 物理邊界 .53
3.4.2 所有權(quán)邊界 54
3.5 現(xiàn)實生活中的限界上下文 54
3.5.1 語義域 55
3.5.2 科學(xué) 55
3.5.3 買一個冰箱 56
3.6 本章小結(jié)58
3.7 本章練習59
第4 章 集成限界上下文 .61
4.1 協(xié)作 .62
4.1.1 合作 62
4.1.2 共享內(nèi)核 .63
4.2 客戶– 供應(yīng)商 .65
4.2.1 跟隨者 65
4.2.2 防腐層 66
4.2.3 開放主機服務(wù) 67
4.3 各行其道68
4.3.1 溝通問題 .68
4.3.2 通用子域 .68
4.3.3 模型差異 .69
4.4 上下文映射圖 .69
4.4.1 維護 70
4.4.2 限制 70
4.5 本章小結(jié)70
4.6 本章練習72
第二部分 戰(zhàn)術(shù)設(shè)計
第5 章 實現(xiàn)簡單業(yè)務(wù)邏輯 .75
5.1 事務(wù)腳本75
5.1.1 實現(xiàn) 76
5.1.2 現(xiàn)實并非那么簡單 .76
5.1.3 何時使用事務(wù)腳本 .81
5.2 活動記錄82
5.2.1 實現(xiàn) 82
5.2.2 何時使用活動記錄 .83
5.3 讓我們更務(wù)實一些 84
5.4 本章小結(jié)84
5.5 本章練習85
第6 章 應(yīng)對復(fù)雜業(yè)務(wù)邏輯 .87
6.1 歷史背景87
6.2 領(lǐng)域模型88
6.2.1 實現(xiàn) 89
6.2.2 構(gòu)件 89
6.2.3 管理復(fù)雜性 . 107
6.3 本章小結(jié). 108
6.4 本章練習. 109
第7 章 時間維度建模 .111
7.1 事件溯源. 111
7.1.1 搜索 . 116
7.1.2 分析 . 118
7.1.3 事實來源 119
7.1.4 事件存儲 120
7.2 事件溯源領(lǐng)域模型 . 121
7.2.1 優(yōu)勢 . 123
7.2.2 劣勢 . 124
7.3 常見問題. 125
7.3.1 性能 . 125
7.3.2 刪除數(shù)據(jù) 127
7.3.3 為什么不能做這些…… . 127
7.4 本章小結(jié). 128
7.5 本章練習. 128
第8 章 架構(gòu)模式 . 131
8.1 業(yè)務(wù)邏輯與架構(gòu)模式 131
8.2 分層架構(gòu)模式 132
8.2.1 表示層 132
8.2.2 業(yè)務(wù)邏輯層 . 133
8.2.3 數(shù)據(jù)訪問層 . 133
8.2.4 各層之間的通信 134
8.2.5 分層架構(gòu)的異化 134
8.2.6 何時使用分層架構(gòu)模式 . 139
8.3 端口– 適配器架構(gòu)模式 140
8.3.1 術(shù)語 . 140
8.3.2 依賴倒置原則 . 141
8.3.3 架構(gòu)組件的集成 142
8.3.4 端口– 適配器架構(gòu)的變體 143
8.3.5 何時使用端口– 適配器架構(gòu)模式 . 143
8.4 命令– 查詢職責分離模式 . 143
8.4.1 混合語言建模 . 144
8.4.2 CQRS 模式的實現(xiàn) 144
8.4.3 投影讀取模型 . 145
8.4.4 面臨的挑戰(zhàn) . 147
8.4.5 模型分解 148
8.4.6 何時使用CQRS 架構(gòu) . 148
8.5 本章范圍. 149
8.6 本章小結(jié). 149
8.7 本章練習. 150
第9 章 通信模式 . 153
9.1 模型轉(zhuǎn)換. 153
9.1.1 無狀態(tài)模型轉(zhuǎn)換 154
9.1.2 有狀態(tài)模型轉(zhuǎn)換 156
9.2 聚合的整合 158
9.2.1 發(fā)件箱模式 . 161
9.2.2 業(yè)務(wù)旅程 163
9.2.3 流程管理器 . 166
9.3 本章小結(jié). 170
9.4 本章練習. 170
第三部分 領(lǐng)域驅(qū)動設(shè)計的應(yīng)用實踐
第10 章 設(shè)計的啟示 . 175
10.1 啟示 175
10.2 限界上下文 . 176
10.3 業(yè)務(wù)邏輯實現(xiàn)模式 177
10.4 架構(gòu)模式 179
10.5 測試策略 180
10.5.1 測試金字塔 181
10.5.2 測試菱形 181
10.5.3 反向測試金字塔 . 181
10.6 戰(zhàn)術(shù)設(shè)計決策樹 182
10.7 本章小結(jié) 183
10.8 本章練習 183
第11 章 設(shè)計決策的演進 . 185
11.1 業(yè)務(wù)領(lǐng)域的變化 185
11.1.1 核心子域向通用子域轉(zhuǎn)變 .186
11.1.2 通用子域向核心子域轉(zhuǎn)變 .186
11.1.3 支撐子域向通用子域轉(zhuǎn)變 .187
11.1.4 支撐子域向核心子域轉(zhuǎn)變 .187
11.1.5 核心子域向支撐子域轉(zhuǎn)變 .187
11.1.6 通用子域向支撐子域轉(zhuǎn)變 .187
11.2 戰(zhàn)略設(shè)計的顧慮 188
11.3 戰(zhàn)術(shù)設(shè)計的顧慮 189
11.3.1 事務(wù)腳本模式向活動記錄模式轉(zhuǎn)變 .189
11.3.2 活動記錄模式向領(lǐng)域模型模式轉(zhuǎn)變 .189
11.3.3 領(lǐng)域模型模式向事件溯源領(lǐng)域模型模式轉(zhuǎn)變 .191
11.3.4 生成過去事務(wù) 191
11.3.5 為遷移事件建模 .193
11.4 組織變革 193
11.4.1 從合作關(guān)系到客戶– 供應(yīng)商關(guān)系 194
11.4.2 從客戶– 供應(yīng)商關(guān)系到各行其道關(guān)系 .194
11.5 領(lǐng)域知識 194
11.6 增長 195
11.6.1 子域 196
11.6.2 限界上下文 197
11.6.3 聚合 197
11.7 本章小結(jié) 198
11.8 本章練習 198
第12 章 事件風暴 201
12.1 什么是事件風暴 201
12.2 誰應(yīng)該參與事件風暴 . 201
12.3 需要什么來引導(dǎo)事件風暴 202
12.4 事件風暴流程 203
12.4.1 **步:非結(jié)構(gòu)化探索 203
12.4.2 第二步:時間線 . 204
12.4.3 第三步:痛點 205
12.4.4 第四步:關(guān)鍵事件 206
12.4.5 第五步:命令 206
12.4.6 第六步:策略 207
12.4.7 第七步:讀模型 . 208
12.4.8 第八步:外部系統(tǒng) 209
12.4.9 第九步:聚合 209
12.4.10 第十步:限界上下文 . 209
12.5 變體 210
12.6 何時使用事件風暴 211
12.7 引導(dǎo)技巧 212
12.7.1 觀察動態(tài) 213
12.7.2 遠程事件風暴 213
12.8 本章小結(jié) 213
12.9 本章練習 214
第13 章 真實世界中的領(lǐng)域驅(qū)動設(shè)計 215
13.1 戰(zhàn)略分析 216
13.1.1 理解業(yè)務(wù)領(lǐng)域 216
13.1.2 探索當前的設(shè)計 . 217
13.2 現(xiàn)代化戰(zhàn)略 . 218
13.2.1 戰(zhàn)略現(xiàn)代化 219
13.2.2 戰(zhàn)術(shù)現(xiàn)代化 221
13.2.3 培養(yǎng)通用語言 221
13.3 實用領(lǐng)域驅(qū)動設(shè)計 224
13.4 推銷領(lǐng)域驅(qū)動設(shè)計 225
13.5 本章小結(jié) 227
13.6 本章練習 228
第四部分 與其他方法論和模式的關(guān)系
第14 章 微服務(wù) 231
14.1 什么是服務(wù) . 231
14.2 什么是微服務(wù) 232
14.2.1 方法即服務(wù):完美的微服務(wù) 233
14.2.2 設(shè)計目標 234
14.2.3 系統(tǒng)復(fù)雜度 235
14.2.4 微服務(wù)即深度服務(wù) 236
14.2.5 微服務(wù)即深模塊 . 237
14.3 領(lǐng)域驅(qū)動設(shè)計和微服務(wù)的邊界 . 239
14.3.1 限界上下文 239
14.3.2 聚合 241
14.3.3 子域 242
14.4 壓縮微服務(wù)的公共接口 243
14.4.1 開放主機服務(wù) 243
14.4.2 防腐層 . 244
14.5 本章小結(jié) 244
14.6 本章練習 245
第15 章 事件驅(qū)動架構(gòu) . 247
15.1 事件驅(qū)動架構(gòu)概述 247
15.2 事件 248
15.2.1 事件、命令與消息 248
15.2.2 事件結(jié)構(gòu) 249
15.2.3 事件類型 249
15.3 設(shè)計事件驅(qū)動集成 255
15.3.1 分布式的大泥球 . 255
15.3.2 時域耦合 256
15.3.3 功能耦合 257
15.3.4 實現(xiàn)耦合 257
15.3.5 重構(gòu)事件驅(qū)動集成 257
15.3.6 事件驅(qū)動設(shè)計的啟示 258
15.4 本章小結(jié) 260
15.5 本章練習 260
第16 章 數(shù)據(jù)網(wǎng)格 263
16.1 分析型數(shù)據(jù)模型與事務(wù)型數(shù)據(jù)模型 263
16.1.1 事實表 . 264
16.1.2 維度表 . 266
16.1.3 分析模型 267
16.2 分析數(shù)據(jù)管理平臺 268
16.2.1 數(shù)據(jù)倉庫 268
16.2.2 數(shù)據(jù)湖 . 271
16.2.3 數(shù)據(jù)倉庫和數(shù)據(jù)湖架構(gòu)的挑戰(zhàn) 272
16.3 數(shù)據(jù)網(wǎng)格 273
16.3.1 圍繞領(lǐng)域分解數(shù)據(jù) 273
16.3.2 數(shù)據(jù)即產(chǎn)品 274
16.3.3 賦能自治 276
16.3.4 構(gòu)建生態(tài)系統(tǒng) 276
16.3.5 結(jié)合數(shù)據(jù)網(wǎng)格和領(lǐng)域驅(qū)動設(shè)計 276
16.4 本章小結(jié) 278
16.5 本章練習 278
第17 章 結(jié)束語 281
17.1 問題 281
17.2 解決方案 282
17.3 實現(xiàn) 282
17.4 深入閱讀 282
17.4.1 先進領(lǐng)域驅(qū)動設(shè)計 282
17.4.2 架構(gòu)與集成模式 . 284
17.4.3 遺留系統(tǒng)的現(xiàn)代化改造 284
17.4.4 事件風暴 285
17.5 全書總結(jié) 285
附錄A 應(yīng)用領(lǐng)域驅(qū)動設(shè)計的案例 287
附錄B 練習題參考答案 303
參考資料 311
展開全部
領(lǐng)域驅(qū)動設(shè)計學(xué)習手冊 作者簡介
[以]弗拉德·霍諾諾夫(Vlad Khononov)是一名軟件工程師,他擁有超過20年的行業(yè)經(jīng)驗。在此期間,他曾為不同類型的公司工作過,并擔任過從網(wǎng)站管理員到首席架構(gòu)師等各種職務(wù)。作為領(lǐng)域驅(qū)動設(shè)計的長期支持和倡導(dǎo)者,Vlad幫助企業(yè)理解其業(yè)務(wù)領(lǐng)域,梳理遺留系統(tǒng),并應(yīng)對復(fù)雜架構(gòu)的挑戰(zhàn)。