首页>参考读物>计算机科学与技术>综合

DDD工程实战:从零构建企业级DDD应用
作者 : 郑天民 著
出版日期 : 2023-01-12
ISBN : 978-7-111-71787-4
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 256
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

这是一本能教你快速从零构建一个完整的企业级DDD应用的实战性著作。
DDD本身涉及的概念多,而且技术组件的实现也比较复杂,对于初学者来说门槛相对较高。本书在写作上另辟蹊径,首先用很短的篇幅将限界上下文、聚合、实体等十几组核心概念和技术组件,以及Spring Boot、Spring Cloud和Axon等开发DDD应用的主流开源框架做了一个简单的介绍,然后用8章的篇幅讲解了一个综合性的案例,不仅将前面提到的这些核心概念、技术组件和开发框架的原理、使用全部融入到了案例中,还一步步地详细讲解了DDD应用的实现方式和落地细节。
通过阅读本书,你能获得以下收获:

?架构设计:基于DDD核心概念设计业务体系架构;
?技术体系:根据DDD技术实现模型掌握主流框架的应用;

?案例实战:递进式演练DDD核心理念及技术的落地实现;

?工程实施:提升DDD工程的整体实施水平和能力

图书特色

资深系统架构师15年经验总结,
全面剖析DDD的核心概念、技术体系、开发框架、实现方式
以实战为导向,手把手教你从零构建一个完整的企业级DDD应用,
技术和方法全部融于案例中

上架指导

计算机\程序设计

封底文字

本书涵盖了DDD的方方面面,不但讲解了核心概念和重要技术组件,还通过一套案例系统来阐述如何落地,并给出了具体的实现代码。此外,本书还讨论了企业及团队在组织架构等方面需要做出的转变,这也是初步实施DDD的团队经常在实践过程中忽略的。DDD落地并非一朝一夕,团队对每个环节都需要投入大量精力。希望这本书能够助力读者朋友成功实践!
——汪佳南 高级技术专家/《RabbitMQ实战》等多部IT图书译者

在当前的数字化转型浪潮中,业务架构既是企业承接业务价值、实现战略目标的重要手段,也是开发人员进行系统设计和开发实现的必要环节。作为当前最热门的业务架构方法,领域驱动设计(DDD)往往给人一种比较抽象、难以理解及应用的印象。为了破除这种刻板印象,让读者高效掌握领域驱动设计的精髓,郑天民老师将理论讲解结合实战,打通业务和技术的“任督二脉”,通过最简单易懂的讲解逻辑及贴近当前主流技术栈的案例,帮各位读者用最佳的方式去打开DDD的大门。
——秦金卫 Apache Dubbo/ShardingSphere PMC

如果你希望学习一种软件设计方法,那么我强烈推荐领域驱动设计(DDD)。本书从战略和战术两个角度详尽地讨论了DDD的思路模式,使开发者能够即时将理论付诸实践。作为软件行业从业者,我非常推荐有需要的读者阅读并学习本书,你将从中吸收大量实战经验,并收获具体、有效的软件设计指导。
——齐毅 资深架构师/“IT老齐”公众号创始人

作者简介

郑天民 著:作者介绍
郑天民(作者照片)
资深架构师和技术专家,有近15年的软件研发和架构经验。现担任某知名健康科技公司技术总监,先后就职于多家大型上市公司和互联网独角兽公司,担任系统架构师、技术总监和CTO等职务。
对架构设计和技术管理有深入的理解,积累了丰富的经验,研发和主持过10余个面向研发人员的技术和管理类培训课程。热衷于总结和分享,著作有《系统架构设计》等,译作有《Spring响应式编程》等。
阿里云MVP、腾讯云TVP、TGO鲲鹏会会员。

图书目录

《DDD工程实践:从零构建企业级DDD应用》
第1章 引入DDD
1.1 面向领域的设计思想
1.1.1 问题空间和业务模型
1.1.2 架构设计与领域驱动设计
1.1.3 领域驱动设计的维度
1.2 面向领域的设计方法
1.3.1 面向领域的战略设计
1.3.2 面向领域的技术设计
1.3 DDD的应用方式
1.1.1 DDD与单体应用
1.1.2 DDD与微服务架构
1.1.3 DDD与中台架构
1.4 全书架构(放到前言里讲)
1.5 本章小结

第2章 DDD核心概念
2.1 子域和限界上下文
2.1.1 通用语言
2.1.2 子域
2.1.3 限界上下文
2.1.4 上下文映射
2.1.5 上下文集成
2.2 实体、值对象和聚合
2.2.1 实体
2.2.2 值对象
2.2.3 聚合
2.3 领域服务
2.3.1 领域服务的概念
2.3.2 提取领域服务
2.4 领域事件
3.5.1 领域事件框架
3.5.2 领域事件建模
2.5 资源库
2.5.1 Repository模式
2.5.2 资源库的实现方法
2.6 应用程序
2.6.1 用户界面
2.6.2 应用服务
2.6.3 基础设施
2.7 本章小结

第3章 DDD案例分析
3.1 HealthMonitor业务体系
3.2 子域和限界上下文
3.2.1 HealthMonitor子域
3.2.2 HealthMonitor限界上下文
3.3 聚合、实体和值对象
3.3.1 HealthMonitor聚合
3.3.2 HealthMonitor实体
3.3.3 HealthMonitor值对象
3.4 领域事件和事务
3.4.1 HealthMonitor事件
3.4.2 HealthMonitor事务
3.5 应用服务和基础设施
3.5.1 HealthMonitor应用服务
3.5.2 HealthMonitor基础设施
3.6 限界上下文集成
3.7 HealthMonitor领域模型总结
3.8 本章小结

第4章 DDD实现技术
4.1 DDD技术实现模型
4.1.1 单体模型
4.1.2 系统集成模型
4.1.3 事件处理模型
4.1.4 微服务模型
4.2 Spring Boot与DDD实现模型
4.3.1 Spring Boot
4.3.2 Spring Data
4.3 Spring Cloud与DDD实现模型
4.3.3 Spring Cloud Discovery
4.3.4 Spring Cloud Stream
4.4 Axon与DDD实现模型
4.4.1 CQRS
4.4.2 事件风暴
4.4.3 Sagas
4.5 本章小结

第5章 案例实现:限界上下文
5.1 创建Spring Boot应用程序
5.2 创建第一个限界上下文
5.2.1 领域对象
5.2.2 应用服务
5.2.3 基础设施
5.2.4 资源与适配
5.3 实现HealthMonitor限界上下文
5.4 本章小结

第6章 案例实现:领域模型对象
6.1 引入JPA
6.1.1 JPA规范
6.1.2 @Embedded和@Embeddable注解
6.2 创建聚合
6.3.1 聚合标识符
6.3.2 充血模型和业务属性
6.3 抽取实体和值对象
6.3.1 实现实体
6.3.2 实现值对象
6.4 实现HealthMonitor领域对象
6.5 本章小结

第7章 案例实现:应用服务
7.1 应用服务实现策略
7.2 创建Command服务
7.2.1 Command模式
7.2.2 创建Command对象
7.2.3 实现Command服务
7.3 创建Query服务
7.3.1 Query模式
7.3.2 实现Query服务
7.4 集成聚合和应用服务
7.5 实现HealthMonitor应用服务
7.6 本章小结

第8章 案例实现:存储库
8.1 Repository架构模式
8.2 Spring Data JPA
8.2.1 Spring Data抽象
8.2.2 方法名衍生查询
8.2.3 命名查询
8.3 集成应用服务和存储库
8.4 实现HealthMonitor存储库
8.5 本章小结

第9章 案例实现:领域事件
9.1 事件驱动架构
9.2 领域事件模型
9.2.1 领域事件类型和操作
9.2.2 在领域模型中嵌入领域事件
9.3 基于AbstractAggregateRoot实现领域事件
9.3.1 AbstractAggregateRoot
9.3.2 @TransactionalEventListener注解
9.4 基于Spring Cloud Steam实现领域事件
9.4.1 Spring Cloud Steam整体架构
9.4.2 实现Spring Cloud Steam Source
9.4.3 实现Spring Cloud Steam Sink
9.5 实现HealthMonitor领域事件
9.6 本章小结

第10章 案例实现:限界上下文集成
10.1 系统集成模式
10.2 基于Spring Boot实现RESTful服务
10.2.1 创建REST API
10.2.2 消费REST API
10.3 基于Spring Cloud实现微服务
10.3.1 服务注册
10.3.2 服务发现
10.4 实现HealthMonitor限界上下文集成
10.5 本章小结

第11章 案例实现:CORS和事件风暴
11.1 CORS架构与事件风暴模式
11.1.1 CORS架构实现策略
11.1.2 事件风暴模式设计理念
11.1.3 整合CORS和事件风暴
11.2 Axon框架
11.3.1 引入Axon框架
11.3.2 Axon整体架构
11.3.3 Axon服务器
11.3 Axon领域模型组件
11.3.1 Aggregate
11.3.2 CommandHandler
11.3.3 QueryHandler
11.3.4 EventSourceHandler
11.4 Axon分派模型组件
11.4.1 CommandBus
11.4.2 QueryBus
11.4.3 EventBus
11.4.4 Sagas
11.5 基于Axon实现案例系统
11.5.1 基于Axon实现限界上下文
11.5.2 基于Axon实现领域对象
11.5.3 基于Axon实现应用服务
11.5.4 基于Axon实现领域事件
11.5.5 基于Axon实现Saga长事务
11.6 本章小结

第12章 案例实现:测试
12.1 DDD测试方法和策略
12.2 Spring Boot中的测试解决方案
12.2.1 测试工具组件
12.2.2 测试注解
12.3 基于Spring Boot测试HealthMonitor
12.3.1 测试领域对象
12.3.2 测试应用服务
12.3.3 测试存储库
12.3.4 测试领域事件
12.3.5 测试限界上下文集成
12.4 本章小结

第13章 DDD实践方法
13.1 DDD架构风格
13.1.1 应用分层架构有效管理组件依赖关系
13.1.2 应用六边形架构实现外部系统交互
13.1.3 应用事件驱动架构实现系统解耦
13.2 DDD实施方式
13.2.1 DDD实施前提和模式
13.2.2 基于DDD构建业务系统的方法
13.2.3 DDD与遗留系统
13.3 整合DDD与微服务
13.3.1 微服务拆分模式
13.3.2 微服务数据管理模式
13.3.3 基于DDD的微服务设计方法
13.4 DDD与研发过程管理
13.4.1 产品管理转变
13.4.2 组织架构转变
13.4.3 研发文化转变
13.5 本章小结

教学资源推荐
作者: [美]丹尼尔·A.弗莱施(Daniel A. Fleisch)著
作者: 教育部高等学校计算机科学与技术教学指导委员会
作者: 雷震甲 编著
作者: Andrew S.Tanenbaum
参考读物推荐
作者: 中国人民大学 刘启升
作者: 游小明 罗光春 编著