《DDD工程实战:从零构建企业级DDD应用》资深架构师15年经验总结,全面剖析DDD核心概念、技术体系、开发框架,手把手教你从零构建一个完整的DDD应用
定 价:99 元
- 作者:郑天民 著
- 出版时间:2023/2/1
- ISBN:9787111717874
- 出 版 社:机械工业出版社
- 中图法分类:TP311.5
- 页码:250
- 纸张:
- 版次:
- 开本:16
这是一本能教你快速从零构建一个完整的企业级DDD应用的实战性著作。
DDD本身涉及的概念多,而且技术组件的实现也比较复杂,对于初学者来说门槛相对较高。本书在写作上另辟蹊径,首先用很短的篇幅将限界上下文、聚合、实体等十几组核心概念和技术组件,以及Spring Boot、Spring Cloud和Axon等开发DDD应用的主流开源框架做了一个简单的介绍,然后用8章的篇幅讲解了一个综合性的案例,不仅将前面提到的这些核心概念、技术组件和开发框架的原理、使用全部融入到了案例中,还一步步地详细讲解了DDD应用的实现方式和落地细节。
通过阅读本书,你能获得以下收获:
架构设计:基于DDD核心概念设计业务体系架构。
技术体系:根据DDD技术实现模型掌握主流框架的应用。
案例实战:递进式演练DDD核心理念及技术的落地实现。
工程实施:提升DDD工程的整体实施水平和能力。
前 言
第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 Axon框架的整体架构 173
11.2.2 Axon服务器 175
11.3 Axon框架的领域模型组件 176
11.3.1 Aggregate 176
11.3.2 CommandHandler 176
11.3.3 QueryHandler 177
11.3.4 EventHandler 178
11.3.5 EventSourceHandler 179
11.4 Axon框架的分派模型组件 180
11.4.1 CommandBus 181
11.4.2 QueryBus 183
11.4.3 EventBus 184
11.5 基于Axon框架实现HealthMonitor案例系统 185
11.5.1 基于Axon框架的重构
策略 185
11.5.2 重构领域模型对象 187
11.5.3 重构应用服务 191
11.5.4 重构领域事件 194
11.6 本章小结 195
第12章 案例实现:测试 196
12.1 DDD测试内容和类型 197
12.1.1 DDD应用程序的测试
内容 197
12.1.2 DDD应用程序的测试
类型 198
12.2 Spring Boot中的测试解决方案 200
12.2.1 测试工具组件 200
12.2.2 测试流程 201
12.2.3 测试注解 205
12.3 测试HealthMonitor案例系统 210
12.3.1 测试领域对象 210
12.3.2 测试应用服务 213
12.3.3 测试资源库 216
12.3.4 测试接口 219
12.4 本章小结 220
第13章 DDD实践方法 221
13.1 DDD架构风格 221
13.1.1 应用经典分层架构管理
组件依赖关系 222
13.1.2 应用整洁架构有效实现
应用程序分层 224
13.1.3 应用六边形架构分离系统
关注点 225
13.1.4 应用事件驱动和管道-
过滤器混合架构实现系统
解耦 228
13.2 DDD实施方式 230
13.2.1 DDD实施的前提和模式 230
13.2.2 基于DDD构建应用程序
的方法 232
13.3 整合DDD与微服务 233
13.3.1 微服务拆分模式 233
13.3.2 微服务数据管理模式 236
13.3.3 微服务与HealthMonitor
案例系统 241
13.4 本章小结 250