实现领域驱动设计
DDD之父Eric Evans作序
¥19.80
作品简介
领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?Vaughn Vernon的这本《实现领域驱动设计》为我们给出了全面的解答。
本书分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。本书共分为14章,在DDD战略部分,本书向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD实现来说非常有用。
本书在DDD的思想和实现之间建立起了一座桥梁,架构师和程序员均可阅读,同时也可以作为一本DDD参考书。
Vaughn Vernon是一个经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验。他提倡通过创新来简化软件的设计和实现。从20世纪80年代开始,他便开始使用面向对象语言进行编程;在20世纪90年代早期,他便在领域建模中应用了领域驱动设计,那时他使用的是Smalltalk语言。他在很多业务领域都有从业经验,包括航空、环境、地理、保险、医学和电信等领域。同时,Vaughn在技术上也取得了很大的成功,包括开发可重用的框架和类库等。他在全球范围之内提供软件咨询和演讲,此外,他还在许多国家教授《实现领域驱动设计》的课程。你可以通过www.VaughnVernon.co访问到他的最新研究成果。
作品目录
内容简介
译者序
本书赞誉
序
前言
致谢
关于作者
如何使用本书
第1章 DDD入门
我能DDD吗?
为什么我们需要DDD
如何DDD
使用DDD的业务价值
实施DDD所面临的挑战
虚构的案例,真实的实践
本章小结
第2章 领域、子域和限界上下文
总览
战略设计为什么重要
现实世界中领域和子域
理解限界上下文
示例上下文
本章小结
第3章 上下文映射图
上下文映射图为什么重要
本章小结
第4章 架构
采访一个成功的CIO
分层
六边形架构(端口与适配器)
面向服务架构
REST
命令和查询职责分离——CQRS
事件驱动架构
数据网织和基于网格的分布式计算
本章小结
第5章 实体
为什么使用实体
唯一标识
发现实体及其本质特征
本章小结
第6章 值对象
值对象的特征
最小化集成
用值对象表示标准类型
测试值对象
实现
持久化值对象
本章小结
第7章 领域服务
什么是领域服务(首先,什么不是领域服务)
请确定你是否需要一个领域服务
建模领域服务
测试领域服务
本章小结
第8章 领域事件
何时/为什么使用领域事件
建模领域事件
从领域模型中发布领域事件
向远程限界上下文发布领域事件
事件存储
转发存储事件的架构风格
实现
本章小结
第9章 模块
通过模块完成设计
模块的基本命名规范
领域模型的命名规范
敏捷项目管理上下文中的模块
先考虑模块,再是限界上下文
本章小结
第10章 聚合
在Scrum核心领域中使用聚合
原则:在一致性边界之内建模真正的不变条件
原则:设计小聚合
原则:通过唯一标识引用其他聚合
原则:在边界之外使用最终一致性
打破原则的理由
通过发现,深入理解
实现
本章小结
第11章 工厂
领域模型中的工厂
聚合根中的工厂方法
领域服务中的工厂
本章小结
第12章 资源库
面向集合资源库
面向持久化资源库
额外的行为
管理事务
类型层级
资源库 vs 数据访问对象(DAO)
测试资源库
本章小结
第13章 集成限界上下文
集成基础知识
通过REST资源集成限界上下文
通过消息集成限界上下文
本章小结
第14章 应用程序
用户界面
应用服务
组合多个限界上下文
基础设施
企业组件容器
本章小结
附录A 聚合与事件源:A+ES
应用服务内部
命令处理器
Lambda语法
并发控制
A+ES所带来的结构自由性
性能
实现事件存储
关系型持久化
BLOB持久化
专注的聚合
与聚合设计一道使用
增强事件
工具和模式
协议生成
单元测试和需求规范
事件源和函数式语言
参考文献
载入中