作品简介

领域驱动设计(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持久化
  • 专注的聚合
  • 与聚合设计一道使用
  • 增强事件
  • 工具和模式
  • 协议生成
  • 单元测试和需求规范
  • 事件源和函数式语言
  • 参考文献
展开全部