图书介绍

实现领域驱动设计PDF|Epub|txt|kindle电子书版本网盘下载

实现领域驱动设计
  • (美)弗农著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121224485
  • 出版时间:2014
  • 标注页数:542页
  • 文件大小:79MB
  • 文件页数:580页
  • 主题词:软件设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

实现领域驱动设计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

热门推荐