3.8 用户推荐指数
科技
类型
8.3
豆瓣评分
可以朗读
语音朗读
360千字
字数
2020-07-01
发行日期
展开全部
主编推荐语
30年行业实践沉淀,助力读者原著学习,更快打开DDD之门。
内容简介
《复杂软件设计之道:领域驱动设计全面解析与实战》同时引入了DDD的新发展成果,如事件风暴建模,并以此建模方式替代传统的DDD建模方式讲解了多个案例。还涉及大量软件系统实现相关的技术和架构,读者在学习DDD的同时,也可以掌握这些技术、架构在DDD实现中的灵活应用。
另外,每个概念或方法的讲解过程都穿插了具体实例,以方便读者结合实例进行学习;第2~7章每章后都有总结与拓展,将本章涉及的案例和知识进行总结,并引入国际DDD专家的心得经验,试图告诉读者一条DDD实战中行之有效的途径。
《复杂软件设计之道:领域驱动设计全面解析与实战》主要面向拥有一定实践经验的软件产品经理、领域专家、软件设计开发相关从业人员,相关初级从业者也可阅读本书。
目录
- 版权信息
- 前言
- 为什么写这本书
- 这本书写给谁
- 如何阅读本书
- 本书主要内容
- 致谢
- 第1章 领域驱动设计基础
- 1.1 领域驱动设计的起源与发展
- 1.1.1 程序员为难之处
- 1.1.2 技术负债与软件质量
- 1.1.3 ER数据建模与面向对象建模
- 1.1.4 DDD的诞生和发展
- 1.2 领域驱动设计的特点
- 1.2.1 发现和理解问题
- 1.2.2 领域即边界
- 1.2.3 解决复杂性
- 1.2.4 新的数据结构设计方式
- 1.2.5 需要注重产品的程序员
- 1.3 领域驱动设计的难点
- 1.3.1 业务策略和业务规则
- 1.3.2 统一语言与有界上下文
- 1.3.3 领域模型的提炼
- 1.4 领域驱动设计的应用场景
- 1.4.1 哪些应用不适合?
- 1.4.2 适合微服务架构
- 第2章 领域驱动战略设计
- 2.1 有界上下文
- 2.1.1 统一语言:统一项目中的交流语言
- 2.1.2 如何发现有界上下文和统一语言?
- 2.1.3 有界上下文之间的关系
- 2.1.4 核心子域、支持子域与通用子域
- 2.1.5 实例解析:电费结算系统
- 2.2 按时间线发现有界上下文
- 2.2.1 UML时序图
- 2.2.2 实例解析:电商领域之商品管理上下文
- 2.3 通过领域故事或流程发现有界上下文
- 2.4 通过事件风暴会议发现有界上下文
- 2.4.1 领域事件
- 2.4.2 命令
- 2.4.3 事件风暴建模法
- 2.4.4 实例解析:一个典型的事件风暴建模议程
- 2.5 业务平台与中台设计
- 2.6 总结与拓展
- 第3章 聚合设计
- 3.1 聚合设计的概念
- 3.1.1 高聚合低关联
- 3.1.2 聚合的逻辑一致性
- 3.2 设计聚合的几种方法
- 3.2.1 改变主谓宾顺序
- 3.2.2 根据领域事件设计聚合
- 3.2.3 根据单一职责设计聚合
- 3.2.4 按时间边界设计聚合
- 3.2.5 通过事务边界设计聚合
- 3.2.6 通过ER模型设计聚合
- 3.3 实例解析:订单系统中的聚合设计
- 3.3.1 信息拥有者模式
- 3.3.2 引用模式
- 3.3.3 奥卡姆剃刀原理
- 3.3.4 控制者模式
- 3.3.5 订单状态集中控制实现
- 3.3.6 做什么和怎么做的分离
- 3.3.7 在服务中验证聚合
- 3.3.8 Spring Boot实现
- 3.4 总结与拓展
- 第4章 实体和值对象
- 4.1 失血/贫血模型
- 4.2 实体
- 4.2.1 实体的标识
- 4.2.2 实体的设计
- 4.2.3 实体对象的创建
- 4.3 值对象
- 4.3.1 值对象与实体的区别
- 4.3.2 用值对象重构
- 4.4 领域服务
- 4.4.1 领域服务的特征
- 4.4.2 领域服务与应用服务
- 4.5 仓储
- 4.5.1 自行实现仓储
- 4.5.2 结合Builder模式实现仓储
- 4.6 充血模型的设计原则
- 4.6.1 将公有setter方法变为私有
- 4.6.2 注重对象的构建
- 4.7 实例解析:论坛系统实体和值对象设计
- 4.7.1 聚合根实体是什么?
- 4.7.2 值对象的设计
- 4.7.3 状态设计
- 4.7.4 发帖功能实现
- 4.7.5 双聚合根
- 4.7.6 分配职责行为
- 4.7.7 构建对象必须遵循唯一性
- 4.8 总结与拓展
- 第5章 CQRS架构
- 5.1 DDD架构介绍
- 5.1.1 MVC模式
- 5.1.2 传统三层架构
- 5.1.3 传统DDD分层架构
- 5.1.4 清洁架构
- 5.1.5 六边形架构
- 5.1.6 垂直切片架构
- 5.2 CQRS架构的特点
- 5.3 命令和查询分离
- 5.3.1 查询模型实现
- 5.3.2 命令模型实现
- 5.3.3 Command对象
- 5.3.4 命令和查询的协作
- 5.4 不同的数据访问方式
- 5.4.1 查询端存储实现
- 5.4.2 规格模式
- 5.4.3 命令与查询的同步
- 5.5 CAP定理
- 5.6 领域事件实现数据同步
- 5.7 实例解析:使用Axon框架实现CQRS
- 5.7.1 命令端实现
- 5.7.2 查询端实现
- 5.8 总结与拓展
- 第6章 事件溯源
- 6.1 什么是事件溯源?
- 6.2 基于事件溯源的聚合根设计
- 6.2.1 用事件替代状态
- 6.2.2 活动与事件
- 6.3 事件溯源的优点
- 6.3.1 替代分布式事务
- 6.3.2 事件日志的顺序性
- 6.3.3 基于事件日志的消息系统
- 6.4 微服务中的分布式事务实现
- 6.4.1 引入Saga模式
- 6.4.2 Saga分布式事务原理
- 6.4.3 实例解析:账户转账
- 6.5 使用Apache Kafka实现事件溯源
- 6.6 投射模式
- 6.7 更改数据捕获(CDC)
- 6.8 总结与拓展
- 第7章 货物运输系统
- 7.1 领域描述
- 项目背景
- 7.2 从流程中发现领域事件
- 受理流程说明
- 作业流程说明
- 7.2.1 受理流程
- 7.2.2 作业流程
- 7.3 概念挖掘
- 7.3.1 划分有界上下文
- 7.3.2 预订受理上下文
- 7.3.3 运输作业上下文
- 7.4 预订受理的聚合设计
- 7.4.1 聚合的发现和命名
- 7.4.2 聚合设计
- 7.4.3 状态设计
- 7.4.4 命令与事件设计
- 7.4.5 代码实现
- 7.4.6 设计和实现的差异
- 7.5 运输作业的聚合设计
- 7.5.1 命令、事件和聚合
- 7.5.2 有界上下文映射
- 7.5.3 聚合重构设计
- 7.6 总结与拓展
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。