图书介绍
实现领域驱动设计PDF|Epub|txt|kindle电子书版本网盘下载
![实现领域驱动设计](https://www.shukui.net/cover/13/35047973.jpg)
- (美)弗农著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121224485
- 出版时间:2014
- 标注页数:542页
- 文件大小:79MB
- 文件页数:580页
- 主题词:软件设计
PDF下载
下载说明
实现领域驱动设计PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 DDD入门1
我能DDD吗?2
为什么我们需要DDD5
如何DDD17
使用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
理解限界上下文53
限界上下文不仅仅只包含模型57
限界上下文的大小59
与技术组件保持一致61
示例上下文62
协作上下文63
身份与访问上下文69
敏捷项目管理上下文71
本章小结73
第3章 上下文映射图75
上下文映射图为什么重要75
绘制上下文映射图77
产品和组织关系79
映射3个示例限界上下文82
本章小结97
第4章 架构99
采访一个成功的CIO100
分层104
依赖倒置原则107
六边形架构(端口与适配器)110
面向服务架构114
REST117
REST作为一种架构风格117
RESTful HTTP服务器的关键方面118
RESTful HTTP客户端的关键方面119
REST和DDD120
为什么是REST?121
命令和查询职责分离——QRS121
CQRS的各个方面123
处理具有最终一致性的查询模型128
事件驱动架构129
管道和过滤器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章 值对象193
值对象的特征194
度量或描述195
不变性195
概念整体196
可替换性199
值对象相等性200
无副作用行为201
最小化集成204
用值对象表示标准类型206
测试值对象210
实现214
持久化值对象219
拒绝由数据建模泄漏带来的不利影响220
ORM与单个值对象221
多个值对象序列化到单个列中224
使用数据库实体保存多个值对象225
使用联合表保存多个值对象229
ORM与枚举状态对象230
本章小结233
第7章 领域服务235
什么是领域服务(首先,什么不是领域服务)237
请确定你是否需要一个领域服务238
建模领域服务241
独立接口有必要吗244
一个计算过程246
转换服务249
为领域服务创建一个迷你层250
测试领域服务250
本章小结253
第8章 领域事件255
何时/为什么使用领域事件255
建模领域事件258
创建具有聚合特征的领域事件263
身份标识264
从领域模型中发布领域事件265
发送方265
订阅方269
向远程限界上下文发布领域事件271
消息设施的一致性271
自治服务和系统272
容许时延273
事件存储274
转发存储事件的架构风格279
以REST资源的方式发布事件通知279
通过消息中间件发布事件通知283
实现284
发布NotificationLog285
发布基于消息的事件通知290
本章小结297
第9章 模块299
通过模块完成设计299
模块的基本命名规范302
领域模型的命名规范302
敏捷项目管理上下文中的模块305
其他层中的模块308
先考虑模块,再是限界上下文309
本章小结310
第10章 聚合311
在Scrum核心领域中使用聚合312
第一次尝试:臃肿的聚合313
第二次尝试:多个聚合314
原则:在一致性边界之内建模真正的不变条件317
原则:设计小聚合319
不要相信每一个用例321
原则:通过唯一标识引用其他聚合322
通过标识引用使多个聚合协同工作324
建模对象导航性325
可伸缩性和分布式326
原则:在边界之外使用最终一致性327
谁的任务?328
打破原则的理由329
理由之一:方便用户界面329
理由之二:缺乏技术机制330
理由之三:全局事务331
理由之四:查询性能331
遵循原则332
通过发现,深入理解332
重新思考设计332
估算聚合成本334
常见用例场景335
内存消耗336
探索另外的设计337
实现最终一致性338
这是Scrum团队成员的任务吗?339
决定的时候到了341
实现341
创建具有唯一标识的根实体342
优先使用值对象343
使用迪米特法则和“告诉而非询问”原则344
乐观并发346
避免依赖注入348
本章小结349
第11章 工厂351
领域模型中的工厂351
聚合根中的工厂方法352
创建CalendarEntry实例353
创建Discussion实例357
领域服务中的工厂358
本章小结361
第12章 资源库363
面向集合资源库364
Hibernate实现369
TopLink实现377
面向持久化资源库379
Coherence实现381
MongoDB实现386
额外的行为391
管理事务393
警告397
类型层级397
资源库vs数据访问对象(DAO)400
测试资源库401
以内存实现进行测试404
本章小结407
第13章 集成限界上下文409
集成基础知识409
分布式系统之间存在根本性区别411
跨系统边界交换信息411
通过REST资源集成限界上下文417
实现REST资源418
使用防腐层实现REST客户端421
通过消息集成限界上下文428
从Scrum的产品负责人和团队成员处得到持续通知428
你能处理这样的职责吗?434
长时处理过程,以及避免职责439
长时处理过程的状态机和超时跟踪器450
设计一个更复杂的长时处理过程460
当消息机制或你的系统不可用时464
本章小结465
第14章 应用程序467
用户界面469
渲染领域对象470
渲染数据传输对象471
使用调停者发布聚合的内部状态471
通过领域负载对象渲染聚合实例472
聚合实例的状态展现473
用例优化资源库查询474
处理不同类型的客户端474
渲染适配器以及处理用户编辑475
应用服务478
示例应用服务478
解耦服务输出485
组合多个限界上下文487
基础设施489
企业组件容器490
本章小结494
附录A 聚合与事件源:A+ES495
应用服务内部496
命令处理器505
Lambda语法508
并发控制510
A+ES所带来的结构自由性513
性能513
实现事件存储516
关系型持久化520
BLOB持久化522
专注的聚合523
读模型投射524
与聚合设计一道使用527
增强事件527
工具和模式529
事件序列器530
事件不变性531
值对象531
协议生成534
单元测试和需求规范535
事件源和函数式语言536
参考文献539