科技
类型
可以朗读
语音朗读
156千字
字数
2022-11-01
发行日期
展开全部
主编推荐语
资深架构师15年经验总结,全面剖析DDD核心概念、技术体系、开发框架,手把手教你从零构建一个完整的DDD应用。
内容简介
DDD本身涉及的概念多,而且技术组件的实现也比较复杂,对于初学者来说门槛相对较高。本书在写作上另辟蹊径,首先用很短的篇幅将限界上下文、聚合、实体等十几组核心概念和技术组件,以及Spring Boot、Spring Cloud和Axon等开发DDD应用的主流开源框架做了一个简单的介绍,然后用8章的篇幅讲解了一个综合性的案例,不仅将前面提到的这些核心概念、技术组件和开发框架的原理、使用全部融入到了案例中,还一步步地详细讲解了DDD应用的实现方式和落地细节。
目录
- 版权信息
- 前言
- 第1章 引入DDD
- 1.1 面向领域的设计思想
- 1.1.1 业务模型和系统复杂度
- 1.1.2 领域驱动设计的维度
- 1.2 面向领域的设计方法
- 1.2.1 面向领域的战略设计
- 1.2.2 面向领域的战术设计
- 1.3 应用DDD
- 1.3.1 DDD与单体架构
- 1.3.2 DDD与微服务架构
- 1.3.3 DDD与中台架构
- 1.4 本章小结
- 第2章 DDD核心概念
- 2.1 子域和限界上下文
- 2.1.1 子域的类型
- 2.1.2 限界上下文的映射和集成
- 2.2 领域模型对象
- 2.2.1 实体和值对象
- 2.2.2 聚合
- 2.3 领域服务
- 2.4 领域事件
- 2.5 资源库
- 2.5.1 资源库模式
- 2.5.2 资源库的设计策略
- 2.6 应用服务
- 2.6.1 应用服务的定位
- 2.6.2 应用服务的分类
- 2.7 基础设施
- 2.8 本章小结
- 第3章 DDD案例分析
- 3.1 HealthMonitor业务体系
- 3.1.1 案例描述和通用语言
- 3.1.2 案例建模流程
- 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 本章小结
- 第4章 DDD实现技术
- 4.1 DDD技术实现模型
- 4.1.1 单体模型
- 4.1.2 系统集成模型
- 4.1.3 微服务模型
- 4.1.4 消息通信模型
- 4.2 Spring Boot与DDD实现模型
- 4.2.1 Spring Boot
- 4.2.2 Spring Data
- 4.3 Spring Cloud与DDD实现模型
- 4.3.1 Spring Cloud基础组件
- 4.3.2 Spring Cloud Stream
- 4.4 Axon与DDD实现模型
- 4.4.1 CQRS和事件溯源
- 4.4.2 Axon框架
- 4.5 本章小结
- 第5章 案例实现:限界上下文
- 5.1 Spring Boot应用程序
- 5.1.1 传统Spring Boot应用程序
- 5.1.2 基于DDD的Spring Boot应用程序
- 5.2 创建第一个限界上下文
- 5.2.1 代码包结构
- 5.2.2 领域对象
- 5.2.3 应用服务
- 5.2.4 基础设施
- 5.2.5 接口
- 5.2.6 集成
- 5.3 实现HealthMonitor限界上下文
- 5.3.1 代码工程
- 5.3.2 限界上下文映射
- 5.4 本章小结
- 第6章 案例实现:领域模型对象
- 6.1 创建聚合
- 6.2 抽取实体和值对象
- 6.2.1 抽取实体
- 6.2.2 抽取值对象
- 6.3 为聚合添加领域逻辑
- 6.3.1 实现申请健康监控领域逻辑
- 6.3.2 实现创建健康计划领域逻辑
- 6.3.3 实现执行健康任务领域逻辑
- 6.4 实现HealthMonitor领域模型对象
- 6.4.1 HealthPlan聚合
- 6.4.2 HealthTask聚合
- 6.4.3 HealthRecord聚合
- 6.4.4 共享领域对象
- 6.5 本章小结
- 第7章 案例实现:应用服务
- 7.1 应用服务实现策略
- 7.2 实现应用服务
- 7.2.1 实现命令服务
- 7.2.2 实现查询服务
- 7.3 整合应用服务和聚合
- 7.4 实现HealthMonitor应用服务
- 7.5 本章小结
- 第8章 案例实现:资源库
- 8.1 资源库实现策略
- 8.2 Spring Data JPA
- 8.2.1 Spring Data抽象
- 8.2.2 JPA规范
- 8.2.3 多样化查询
- 8.3 实现资源库
- 8.3.1 创建PO和工厂
- 8.3.2 创建Mapper
- 8.3.3 实现Repository
- 8.4 整合资源库和应用服务
- 8.5 实现HealthMonitor资源库
- 8.6 本章小结
- 第9章 案例实现:领域事件
- 9.1 领域事件实现策略
- 9.2 基于Spring Data生成领域事件
- 9.2.1 @DomainEvents注解和AbstractAggregateRoot
- 9.2.2 @TransactionalEventListener注解
- 9.3 基于Spring Cloud Stream发布和订阅领域事件
- 9.3.1 Spring Cloud Stream整体架构
- 9.3.2 实现Spring Cloud Stream Source
- 9.3.3 实现Spring Cloud Stream Sink
- 9.4 实现HealthMonitor领域事件
- 9.5 本章小结
- 第10章 案例实现:限界上下文集成
- 10.1 限界上下文集成策略
- 10.1.1 统一协议和防腐层
- 10.1.2 服务注册和发现
- 10.2 基于REST API构建统一协议
- 10.2.1 创建Controller
- 10.2.2 处理Web请求
- 10.2.3 集成应用服务
- 10.3 基于REST API构建防腐层
- 10.3.1 创建和使用RestTemplate
- 10.3.2 创建防腐层组件
- 10.3.3 集成命令服务
- 10.4 本章小结
- 第11章 案例实现:事件溯源和CQRS
- 11.1 事件溯源和CQRS的实现策略
- 11.1.1 事件溯源模式的设计理念
- 11.1.2 整合事件溯源和CQRS
- 11.2 Axon框架
- 11.2.1 Axon框架的整体架构
- 11.2.2 Axon服务器
- 11.3 Axon框架的领域模型组件
- 11.3.1 Aggregate
- 11.3.2 CommandHandler
- 11.3.3 QueryHandler
- 11.3.4 EventHandler
- 11.3.5 EventSourceHandler
- 11.4 Axon框架的分派模型组件
- 11.4.1 CommandBus
- 11.4.2 QueryBus
- 11.4.3 EventBus
- 11.5 基于Axon框架实现HealthMonitor案例系统
- 11.5.1 基于Axon框架的重构策略
- 11.5.2 重构领域模型对象
- 11.5.3 重构应用服务
- 11.5.4 重构领域事件
- 11.6 本章小结
- 第12章 案例实现:测试
- 12.1 DDD测试内容和类型
- 12.1.1 DDD应用程序的测试内容
- 12.1.2 DDD应用程序的测试类型
- 12.2 Spring Boot中的测试解决方案
- 12.2.1 测试工具组件
- 12.2.2 测试流程
- 12.2.3 测试注解
- 12.3 测试HealthMonitor案例系统
- 12.3.1 测试领域对象
- 12.3.2 测试应用服务
- 12.3.3 测试资源库
- 12.3.4 测试接口
- 12.4 本章小结
- 第13章 DDD实践方法
- 13.1 DDD架构风格
- 13.1.1 应用经典分层架构管理组件依赖关系
- 13.1.2 应用整洁架构有效实现应用程序分层
- 13.1.3 应用六边形架构分离系统关注点
- 13.1.4 应用事件驱动和管道-过滤器混合架构实现系统解耦
- 13.2 DDD实施方式
- 13.2.1 DDD实施的前提和模式
- 13.2.2 基于DDD构建应用程序的方法
- 13.3 整合DDD与微服务
- 13.3.1 微服务拆分模式
- 13.3.2 微服务数据管理模式
- 13.3.3 微服务与HealthMonitor案例系统
- 13.4 本章小结
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。