作 者:鄭天民 著
定 價:99
出 版 社:機械工業出版社
出版日期:2023年01月01日
頁 數:260
裝 幀:平裝
ISBN:9787111717874
(1)作者經驗豐富:15年研發和架構經驗,曾擔任多家上市公司和獨角獸公司技術總監和CTO等職務,對DDD有深入研究。(2)內容有創新性:與同類書不同,本書的核心篇幅沒有聚焦在DDD龐雜的理論知識上,而是將理論知識融於案例中。(3)內容實戰性強:本書以案例為主,通過搭積木的方式,帶領讀者從零開始搭建一個完整的DDD應用,將理論技術和實現方式全部融入案例中。
●前言
第1章引入DDD1
1.1面向領域的設計思想1
1.1.1業務模型和繫統復雜度2
1.1.2領域驅動設計的維度4
1.2面向領域的設計方法4
1.2.1面向領域的戰略設計5
1.2.2面向領域的戰術設計7
1.3應用DDD12
1.3.1DDD與單體架構12
1.3.2DDD與微服務架構13
1.3.3DDD與中臺架構14
1.4本章小結15
第2章DDD核心概念16
2.1子域和限界上下文16
2.1.1子域的類型17
2.1.2限界上下文的映射和集成17
2.2領域模型對像20
2.2.1實體和值對像20
2.2.2聚合25
2.3領域服務28
2.4領域事件29
2.5資源庫31
2.5.1資源庫模式31
2.5.2資源庫的設計策略32
2.6應用服務33
2.6.1應用服務的定位33
2.6.2應用服務的分類34
2.7基礎設施34
2.8本章小結35
第3章DDD案例分析37
3.1HealthMonitor業務體繫37
3.1.1案例描述和通用語言37
3.1.2案例建模流程39
3.2子域和限界上下文40
3.2.1HealthMonitor子域40
3.2.2HealthMonitor限界上下文42
3.3領域模型對像44
3.3.1HealthMonitor聚合44
3.3.2HealthMonitor實體45
3.3.3HealthMonitor值對像46
3.4領域事件和事務47
3.4.1HealthMonitor領域事件48
3.4.2HealthMonitor事務50
3.5應用服務50
3.5.1HealthMonitor命令服務51
3.5.2HealthMonitor查詢服務53
3.6限界上下文集成54
3.7本章小結55
第4章DDD實現技術56
4.1DDD技術實現模型57
4.1.1單體模型57
4.1.2繫統集成模型58
4.1.3微服務模型59
4.1.4消息通信模型60
4.2SpringBoot與DDD實現模型61
4.2.1SpringBoot62
4.2.2SpringData64
4.3SpringCloud與DDD實現模型65
4.3.1SpringCloud基礎組件65
4.3.2SpringCloudStream67
4.4Axon與DDD實現模型68
4.4.1CQRS和事件溯源68
4.4.2Axon框架70
4.5本章小結71
第5章案例實現:限界上下文72
5.1SpringBoot應用程序72
5.1.1傳統SpringBoot應用程序73
5.1.2基於DDD的SpringBoot
應用程序76
5.2創建第一個限界上下文78
5.2.1代碼包結構78
5.2.2領域對像79
5.2.3應用服務80
5.2.4基礎設施81
5.2.5接口81
5.2.6集成82
5.3實現HealthMonitor限界上下文84
5.3.1代碼工程84
5.3.2限界上下文映射85
5.4本章小結86
第6章案例實現:領域模型對像87
6.1創建聚合88
6.2抽取實體和值對像89
6.2.1抽取實體89
6.2.2抽取值對像92
6.3為聚合添加領域邏輯94
6.3.1實現申請健康監控領域邏輯95
6.3.2實現創建健康計劃領域邏輯97
6.3.3實現執行健康任務領域邏輯97
6.4實現HealthMonitor領域模型對像99
6.4.1HealthPlan聚合99
6.4.2HealthTask聚合99
6.4.3HealthRecord聚合100
6.4.4共享領域對像100
6.5本章小結101
第7章案例實現:應用服務102
7.1應用服務實現策略102
7.2實現應用服務105
7.2.1實現命令服務105
7.2.2實現查詢服務108
7.3整合應用服務和聚合110
7.4實現HealthMonitor應用服務111
7.5本章小結113
第8章案例實現:資源庫114
8.1資源庫實現策略114
8.2SpringDataJPA116
8.2.1SpringData抽像116
8.2.2JPA規範117
8.2.3多樣化查詢118
8.3實現資源庫122
8.3.1創建PO和工廠122
8.3.2創建Mapper124
8.3.3實現Repository126
8.4整合資源庫和應用服務128
8.5實現HealthMonitor資源庫129
8.6本章小結131
第9章案例實現:領域事件132
9.1領域事件實現策略132
9.2基於SpringData生成領域事件134
9.2.1@DomainEvents注解和
AbstractAggregateRoot135
9.2.2@TransactionalEventListener注解136
9.3基於SpringCloudStream發布和訂閱領域事件137
9.3.1SpringCloudStream整體架構137
9.3.2實現SpringCloudStreamSource142
9.3.3實現SpringCloudStreamSink146
9.4實現HealthMonitor領域事件152
9.5本章小結152
第10章案例實現:限界上下文集成153
10.1限界上下文集成策略153
10.1.1統一協議和防腐層154
10.1.2服務注冊和發現155
10.2基於RESTAPI構建統一協議156
10.2.1創建Controller156
10.2.2處理Web請求157
10.2.3集成應用服務158
10.3基於RESTAPI構建防腐層162
10.3.1創建和使用RestTemplate162
10.3.2創建防腐層組件165
10.3.3集成命令服務166
10.4本章小結168
第11章案例實現:事件溯源和CQRS169
11.1事件溯源和CQRS的實現策略169
11.1.1事件溯源模式的設計理念170
11.1.2整合事件溯源和CQRS171
11.2Axon框架172
……
這是一本能教你快速從零構建一個完整的企業級DDD應用的實戰性著作。
DDD本身涉及的概念多,而且技術組件的實現也比較復雜,對於初學者來說門檻相對較高。本書在寫作上另闢蹊徑,首先用很短的篇幅將限界上下文、聚合、實體等十幾組核心概念和技術組件,以及Spring Boot、Spring Cloud和Axon等開發DDD應用的主流開源框架做了一個簡單的介紹,然後用8章的篇幅講解了一個綜合性的案例,不僅將前面提到的這些核心概念、技術組件和開發框架的原理、使用全部融入到了案例中,還一步步地詳細講解了DDD應用的實現方式和落地細節。
通過閱讀本書,你能獲得以下收獲:
架構設計:基於DDD核心概念設計業務體繫架構。
技術體繫:根據DDD技術實現模型掌握主流框架的應用。
案例實戰:遞進式演練DDD核心理念及技術的落地實現。
工程實施:提等