DDD 工程實戰:從零構建企業級 DDD 應用

鄭天民 著

  • 出版商: 機械工業
  • 出版日期: 2023-02-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 250
  • 裝訂: 平裝
  • ISBN: 7111717872
  • ISBN-13: 9787111717874
  • 相關分類: Domain-Driven Design
  • 立即出貨

買這商品的人也買了...

商品描述

這是一本能教你快速從零構建一個完整的企業級DDD應用的實戰性著作。
DDD本身涉及的概念多,而且技術組件的實現也比較複雜,對於初學者來說門檻相對較高。
本書在寫作上另闢蹊徑,首先用很短的篇幅將限界上下文、聚合、實體等十幾組核心概念和技術組件,
以及Spring Boot、Spring Cloud和Axon等開發DDD應用的主流開源框架做了一個簡單的介紹,
然後用8章的篇幅講解了一個綜合性的案例,不僅將前面提到的這些核心概念、技術組件和開發框架的原理、
使用全部融入到了案例中,還一步步地詳細講解了DDD應用的實現方式和落地細節。
通過閱讀本書,你能獲得以下收穫:
架構設計:基於DDD核心概念設計業務體系架構。
技術體系:根據DDD技術實現模型掌握主流框架的應用。
案例實戰:遞進式演練DDD核心理念及技術的落地實現。
工程實施:提升DDD工程的整體實施水平和能力。

作者簡介

鄭天民
資深架構師和技術專家,有近15年的軟件研發和架構經驗。
現擔任某知名健康科技公司技術總監,
先後就職於多家大型上市公司和互聯網獨角獸公司,擔任系統架構師、技術總監和CTO等職務。
對架構設計和技術管理有深入的理解,積累了豐富的經驗,
研發和主持過10餘個面向研發人員的技術和管理類培訓課程。
熱衷於總結和分享,著有《分佈式系統架構與開發:技術原理與面試題解析》
《Spring Boot進階:原理、實戰與面試題分析》等著作。
阿里雲MVP、騰訊雲TVP、TGO鯤鵬會會員。

目錄大綱

前言
第1章引入DDD 1
1.1 面向領域的設計思想1
1.1.1 業務模型和系統複雜度2
1.1.2 領域驅動設計的維度4
1.2 面向領域的設計方法4
1.2.1 面向領域的戰略設計5
1.2.2 面向領域的戰術設計7
1.3 應用DDD 12
1.3.1 DDD與單體架構12
1.3.2 DDD與微服務架構13
1.3.3 DDD與中台架構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.1 HealthMonitor業務體系37
3.1.1 案例描述和通用語言37
3.1.2 案例建模流程39
3.2 子域和限界上下文40
3.2.1 HealthMonitor子域40
3.2.2 HealthMonitor限界上下文42
3.3 領域模型對象44
3.3.1 HealthMonitor聚合44
3.3.2 HealthMonitor實體45
3.3.3 HealthMonitor值對象46
3.4 領域事件和事務47
3.4.1 HealthMonitor領域事件48
3.4.2 HealthMonitor事務50
3.5 應用服務50
3.5.1 HealthMonitor命令服務51
3.5.2 HealthMonitor查詢服務53
3.6 限界上下文集成54
3.7 本章小結55
第4章DDD實現技術56
4.1 DDD技術實現模型57
4.1.1 單體模型57
4.1.2 系統集成模型58
4.1.3 微服務模型59
4.1.4 消息通信模型60
4.2 Spring Boot與DDD實現模型61
4.2.1 Spring Boot 62
4.2.2 Spring Data 64
4.3 Spring Cloud與DDD實現模型65
4.3.1 Spring Cloud基礎組件65
4.3.2 Spring Cloud Stream 67
4.4 Axon與DDD實現模型68
4.4.1 CQRS和事件溯源68
4.4.2 Axon框架70
4.5 本章小結71
第5章案例實現:限界上下文72
5.1 Spring Boot應用程序72
5.1.1 傳統Spring Boot應用程序73
5.1.2 基於DDD的Spring Boot
應用程序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.1 HealthPlan聚合99
6.4.2 HealthTask聚合99
6.4.3 HealthRecord聚合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.2 Spring Data JPA 116
8.2.1 Spring Data抽象116
8.2.2 JPA規範117
8.2.3 多樣化查詢118
8.3 實現資源庫122
8.3.1 創建PO和工廠122
8.3.2 創建Mapper 124
8.3.3 實現Repository 126
8.4 整合資源庫和應用服務128
8.5 實現HealthMonitor資源庫129
8.6 本章小結131
第9章案例實現:領域事件132
9.1 領域事件實現策略132
9.2 基於Spring Data生成領域事件134
9.2.1 @DomainEvents註解和
AbstractAggregateRoot 135
9.2.2 @TransactionalEventListener
註解136
9.3 基於Spring Cloud Stream發布和
訂閱領域事件137
9.3.1 Spring Cloud Stream整體
架構137
9.3.2 實現Spring Cloud Stream
Source 142
9.3.3 實現Spring Cloud Stream
Sink 146
9.4 實現HealthMonitor領域事件152
9.5 本章小結152
第10章案例實現:限界上下文集成153
10.1 限界上下文集成策略153
10.1.1 統一協議和防腐層154
10.1.2 服務註冊和發現155
10.2 基於REST API構建統一協議156
10.2.1 創建Controller 156
10.2.2 處理Web請求157
10.2.3 集成應用服務158
10.3 基於REST API構建防腐層162
10.3.1 創建和使用RestTemplate 162
10.3.2 創建防腐層組件165
10.3.3 集成命令服務166
10.4 本章小結168
第11章案例實現:事件溯源和CQRS 169
11.1 事件溯源和CQRS的實現策略169
11.1.1 事件溯源模式的設計理念170
11.1.2 整合事件溯源和CQRS 171
11.2 Axon框架172
11.2.1