
作者:(美)弗农
页数:584
出版社:电子工业出版社
出版日期:2014
ISBN:9787121224485
电子书格式:pdf/epub/txt
内容简介
领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?弗农的这本《实现领域驱动设计》为我们给出了全面的解答。本书分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的很好实践、设计准则和对一些问题的折中性讨论。《实现领域驱动设计》共分为14章,在DDD战略部分,《实现领域驱动设计》向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD实现来说很好有用。本书在DDD的思想和实现之间建立起了一座桥梁,架构师和程序员均可阅读,同时也可以作为一本DDD参考书。
作者简介
Vaughn Vernon是一个经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验。 他提倡通过创新来简化软件的设计和实现。从20世纪80年代开始,他便开始使用面向对象语言进行编程;在90年代早期,他便在领域建模中应用了领域驱动设计,那时他使用的是Smalltalk语言。 他在全球范围之内提供软件咨询和演讲,此外,他还在许多国家教授《实现领域驱动设计》的课程。
滕云,ThoughtWorks软件工程师。当初抱着“非飞行器设计专业不读”的理想加幻想考入西北工业大学,却不料学起了汽车专业。在尝尽了“从天上掉到地下”的滋味之后,又转行躬耕于软件开发。目前主要从事银行、保险等领域的企业级软件开发,感兴趣的技术领域包括Java EE、Linux、领域驱动设计和构建自动化等。
本书特色
本书分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最实践、设计准则和对一些问题的折中性讨论。全书共分为14章,在DDD战略部分,本书向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD实现来说非常有用。
目录
序 …………………………………………………………………………… xix
前言 ……………………………………………………………………….. xxi
致谢 ……………………………………………………………………… xxxi
关于作者 ………………………………………………………………. xxxv
如何使用本书…………………………………………………………xxxvii
第1章 DDD入门 …………………………………………………………..1
我能DDD吗? …………………………………………………………………………2
为什么我们需要DDD ……………………………………………………………….5
如何DDD ……………………………………………………………………………… 17
使用DDD的业务价值 ……………………………………………………………..22
1.你获得了一个非常有用的领域模型 ………………………………..22
2.你的业务得到了更准确的定义和理解 …………………………….23
3.领域专家可以为软件设计做出贡献 ………………………………..23
4.更好的用户体验 ……………………………………………………………23
5.清晰的模型边界 …………………………………………………………..24
6.更好的企业架构 …………………………………………………………..24
7.敏捷、迭代式和持续建模 ………………………………………………24
8.使用战略和战术新工具 …………………………………………………24
实施DDD所面临的挑战………………………………………………………….25
虚构的案例,真实的实践 ……………………………………………………….. 33
本章小结 ……………………………………………………………………………….36
第2章 领域、子域和限界上下文 ……………………………………..37
总览 ……………………………………………………………………………………… 37
工作中的子域和限界上下文 …………………………………………….. 38
将关注点放在核心域上 ………………………………………………….. 42
战略设计为什么重要 …………………………………………………………….. 45
现实世界中领域和子域 …………………………………………………………..48
x 目录
理解限界上下文 …………………………………………………………………….. 53
限界上下文不仅仅只包含模型 …………………………………………. 57
限界上下文的大小 ………………………………………………………….. 59
与技术组件保持一致 ……………………………………………………… 61
示例上下文……………………………………………………………………………. 62
协作上下文 ……………………………………………………………………..63
身份与访问上下文 …………………………………………………………..69
敏捷项目管理上下文 ………………………………………………………. 71
本章小结 ……………………………………………………………………………….73
第3章 上下文映射图 ……………………………………………………75
上下文映射图为什么重要 ………………………………………………………. 75
绘制上下文映射图 …………………………………………………………..77
产品和组织关系 ……………………………………………………………..79
映射3个示例限界上下文 ………………………………………………….82
本章小结 ……………………………………………………………………………….97
第4章 架构 ……………………………………………………………….99
采访一个成功的CIO…………………………………………………………….. 100
分层 ……………………………………………………………………………………. 104
依赖倒置原则 ………………………………………………………………. 107
六边形架构(端口与适配器) ……………………………………………….. 110
面向服务架构 ……………………………………………………………………….114
REST ……………………………………………………………………………………117
REST作为一种架构风格 …………………………………………………117
RESTful HTTP服务器的关键方面 …………………………………. 118
RESTful HTTP客户端的关键方面 …………………………………. 119
REST和DDD ……………………………………………………………….. 120
为什么是REST? …………………………………………………………. 121
命令和查询职责分离——CQRS……………………………………………. 121
CQRS的各个方面 …………………………………………………………. 123
处理具有最终一致性的查询模型 ………………………………….. 128
事件驱动架构 ……………………………………………………………………… 129
目录xi
管道和过滤器 ………………………………………………………………. 131
长时处理过程(也叫Saga) …………………………………………… 134
事件源 …………………………………………………………………………. 140
数据网织和基于网格的分布式计算 ………………………………………. 143
数据复制 ……………………………………………………………………… 144
事件驱动网织和领域事件 …………………………………………….. 145
持续查询 ……………………………………………………………………… 145
分布式处理 ………………………………………………………………….. 146
本章小结 …………………………………………………………………………….. 148
第5章 实体 ……………………………………………………………… 149
为什么使用实体 …………………………………………………………………… 149
唯一标识 …………………………………………………………………………….. 151
用户提供唯一标识 ……………………………………………………….. 152
应用程序生成唯一标识 ………………………………………………… 153
持久化机制生成唯一标识 ……………………………………………… 156
另一个限界上下文提供唯一标识 …………………………………… 160
标识生成时间 ………………………………………………………………. 161
委派标识 ……………………………………………………………………… 163
标识稳定性 ………………………………………………………………….. 165
发现实体及其本质特征 ………………………………………………………… 167
揭开实体及其本质特征的神秘面纱 ……………………………….. 168
挖掘实体的关键行为 ……………………………………………………. 172
角色和职责 ………………………………………………………………….. 176
创建实体 ……………………………………………………………………… 181
验证 …………………………………………………………………………….. 183
跟踪变化 ……………………………………………………………………… 192
本章小结 …………………………………………………………………………….. 192
第6















