領域驅動設計工作坊

鄭天民

  • 出版商: 人民郵電
  • 出版日期: 2024-09-01
  • 定價: $479
  • 售價: 8.5$407
  • 語言: 簡體中文
  • 頁數: 222
  • 裝訂: 平裝
  • ISBN: 711564134X
  • ISBN-13: 9787115641342
  • 相關分類: Domain-Driven Design
  • 下單後立即進貨 (約4週~6週)

  • 領域驅動設計工作坊-preview-1
  • 領域驅動設計工作坊-preview-2
領域驅動設計工作坊-preview-1

商品描述

本書通過一個完整項目案例由淺入深地介紹了業務建模和軟件設計的方法論——領域驅動設計(Domain Driven Design,DDD)。首先,本書介紹了DDD的基本概念和主流設計方法,同時引入貫穿全書的案例系統,並完成案例系統的基礎設計;其次,圍繞DDD的統一語言、子域和限界上下文展開討論,探討從問題空間進入解空間的解決方案;再次,從領域建模範式講起,詳細分析實體、值對象、聚合、領域服務、應用服務和領域事件等DDD中與戰術設計相關的核心概念,並給出各個組件的設計方法和使用技巧;最後,圍繞常見領域驅動架構模式及DDD架構考量,給出DDD的架構設計和整合方案。

本書結構清晰、內容豐富、圖文並茂,適合團隊負責人、業務設計人員、系統設計人員以及架構師等閱讀。

作者簡介

郑天民,日本足利工业大学信息工程学硕士,拥有十余年软件行业从业经验,目前在一家大健康领域的创新型科技公司担任CTO,负责产品研发与技术团队管理工作。他开发过十余个面向开发人员的技术和管理类培训课程项目,在架构设计和技术管理方面有丰富的经验。他是阿里云MVP、腾讯云TVP、TGO鲲鹏会会员。他著有《Apache ShardingSphere实战》《Spring响应式微服务:Spring Boot 2+Spring 5+Spring Cloud实战》《系统架构设计》《微服务设计原理与架构》《Spring Security原理与实践》等图书。

目錄大綱

基礎概念篇

第 1章 領域驅動設計體系 2

1.1 軟件復雜度剖析 2

1.1.1 軟件復雜度與規模 3

1.1.2 軟件復雜度與結構 6

1.1.3 軟件復雜度與變化 10

1.2 引入領域驅動設計 14

1.2.1 領域驅動設計基礎 14

1.2.2 領域驅動戰略設計 18

1.2.3 領域驅動戰術設計 20

1.2.4 領域驅動設計和軟件復雜度 24

1.3 領域驅動設計與架構融合 28

1.3.1 領域驅動設計與單體應用 28

1.3.2 領域驅動設計與微服務架構 29

1.3.3 領域驅動設計與中台架構 30

1.4 本章小結 31

第 2章 工作坊案例系統 32

2.1 工作坊的基本概念和開展方式 32

2.1.1 工作坊的基本概念 32

2.1.2 準備工作 33

2.1.3 流程和階段 35

2.2 案例系統介紹 36

2.3 案例系統基礎設計 37

2.3.1 基礎設計目標 37

2.3.2 基礎設計流程 38

2.3.3 基礎設計交付物 39

2.4 本章小結 44

 

戰略設計篇

第3章 統一語言與子域 46

3.1 統一語言 46

3.1.1 溝通的問題和策略 46

3.1.2 統一語言的結構化表述 48

3.1.3 統一語言的實現模式 50

3.2 子域 53

3.2.1 子域的劃分方法 54

3.2.2 子域的分類和映射 54

3.3 本章小結 56

第4章 限界上下文 57

4.1 引入限界上下文 57

4.1.1 限界上下文的定義 58

4.1.2 限界上下文的特性 59

4.1.3 限界上下文的設計 62

4.2 識別限界上下文 63

4.2.1 從業務維度識別限界上下文 63

4.2.2 從工作維度識別限界上下文 65

4.2.3 從技術維度識別限界上下文 65

4.3 限界上下文映射 67

4.3.1 上下游關系和映射 67

4.3.2 團隊協作模式 68

4.3.3 通信集成模式 72

4.3.4 影響上下文映射的考量點 76

4.4 限界上下文案例講解 79

4.5 本章小結 82

第5章 事件風暴 83

5.1 探索業務全景 83

5.2 實施事件風暴 84

5.2.1 事件風暴基本概念 84

5.2.2 事件風暴實施方法 89

5.3 事件風暴應用實踐 97

5.3.1 事件風暴流程裁剪 97

5.3.2 事件風暴最佳實踐 98

5.4 事件風暴案例講解 100

5.5 本章小結 101

第6章 戰略設計工作坊演練 102

6.1 案例系統戰略設計 102

6.1.1 戰略設計目標 102

6.1.2 戰略設計流程 103

6.2 戰略設計工作坊演練環節 104

6.2.1 事件建模 104

6.2.2 聚合分析 108

6.2.3 子域劃分 116

6.2.4 限界上下文映射 118

6.3 戰略設計工作坊演練最佳實踐 120

6.3.1 事件的建模 122

6.3.2 核心領域概念的處理 123

6.4 本章小結 124

 

戰術設計篇

第7章 實體和值對象 126

7.1 控制類的組成 126

7.2 實體 128

7.2.1 實體的唯一標識和屬性 128

7.2.2 實體的領域行為 131

7.3 值對象 133

7.3.1 值對象的識別 133

7.3.2 值對象的特徵 134

7.4 實體和值對象建模案例講解 136

7.5 本章小結 138

第8章 聚合 140

8.1 控制類的關系 140

8.2 引入聚合 141

8.2.1 聚合的定義和特徵 142

8.2.2 聚合的設計原則 143

8.3 聚合的協作方式 144

8.3.1 聚合的關聯關系 145

8.3.2 聚合的依賴關系 147

8.4 聚合生命周期管理 147

8.4.1 工廠 148

8.4.2 資源庫 149

8.5 聚合設計案例講解 153

8.6 本章小結 155

第9章 服務、事件與基礎設施 156

9.1 領域服務 156

9.1.1 領域服務的示例 156

9.1.2 領域服務的應用場景 157

9.2 應用服務 159

9.2.1 應用服務的定位 159

9.2.2 應用服務的應用場景 162

9.2.3 應用服務的設計原則 164

9.3 領域事件 166

9.3.1 領域事件和事件驅動架構 166

9.3.2 領域事件的發布和訂閱 168

9.4 基礎設施 172

9.5 本章小結 174

第 10章 戰術設計工作坊演練 175

10.1 案例系統戰術設計 175

10.1.1 戰術設計目標 175

10.1.2 戰術設計流程 176

10.2 戰術設計工作坊演練環節 177

10.2.1 戰術設計效果展示 177

10.2.2 設計聚合、實體和值對象 178

10.2.3 設計事件和服務 180

10.2.4 設計限界上下文核心業務操作 181

10.3 戰術設計工作坊演練最佳實踐 185

10.3.1 聚合的設計 185

10.3.2 值對象的設計 186

10.4 本章小結 187

 

架構設計篇

第 11章 領域驅動實現架構 190

11.1 常見領域驅動架構模式 190

11.1.1 DDD經典分層架構 190

11.1.2 DDD整潔架構 194

11.1.3 DDD六邊形架構 195

11.1.4 DDD架構的映射性 197

11.2 領域驅動設計的架構考量 198

11.2.1 限界上下文的物理表現 199

11.2.2 CQRS和DDD 202

11.2.3 事件溯源和CQRS 205

11.2.4 數據一致性 208

11.3 本章小結 209

第 12章 架構設計工作坊演練 210

12.1 案例系統架構設計 210

12.1.1 架構設計目標 210

12.1.2 架構設計流程 211

12.2 架構設計工作坊演練環節 212

12.2.1 劃分業務服務 212

12.2.2 確定業務服務操作 213

12.2.3 觸發領域事件 214

12.2.4 實現業務服務交互 215

12.3 架構設計工作坊演練最佳實踐 216

12.3.1 整合戰略設計和戰術設計 219

12.3.2 事件與柔性事務 219

12.3.3 查詢類操作的設計 220

12.4 本章小結 222