新書推薦:
《
宏观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:NT$
709.0
《
UE5虚幻引擎必修课(视频教学版)
》
售價:NT$
505.0
《
真需求
》
售價:NT$
505.0
《
阿勒泰的春天
》
售價:NT$
230.0
《
如见你
》
售價:NT$
234.0
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:NT$
305.0
《
560种野菜野果鉴别与食用手册
》
售價:NT$
305.0
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
編輯推薦:
实践导向,通过工作坊形式,将理论与实践紧密结合,使读者能够在实际操作中学习和掌握DDD;
案例丰富,将综合项目案例系统拆分成多个子系统,帮助读者深入理解DDD在不同场景下的应用;
全面覆盖,从基础概念到架构设计,涵盖DDD的各个方面,为读者提供全面的学习路径;
易于理解,以清晰的结构和语言,确保复杂的概念易于理解,便于读者快速掌握DDD的核心思想。
注重实用,附赠讲解视频,丰富学习方式。
內容簡介:
本书通过一个完整项目案例由浅入深地介绍了业务建模和软件设计的方法论——领域驱动设计(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