13、迭代二概述:怎样更深刻地理解领域知识

你好,我是钟敬。 这节课开始,我们即将进入第二个迭代,一起学习几个DDD里更高级的实践和模式,带你逐步提升领域建模能力,更深刻地理解领域知识。 在梳理迭代二主要内容和迭代需求之前,我会先帮你巩固一下迭代一知识点。这是因为,你在学习了前面的课程以后,有...

手把手教你落地DDD

14、聚合的概念:怎样保护业务规则

你好,我是钟敬。 上节课我们介绍了迭代二的内容和目标。接下来几节课,咱们会通过实现几个新增的功能,学习DDD中的一个重要模式“聚合”(Aggregate)。今天,我们先来理解聚合的概念和领域建模,为我们后面几节课实现聚合打好基础。 到现在为止,我们已...

手把手教你落地DDD

15、聚合的实现(上):怎样对聚合进行封装

你好,我是钟敬。 [上节课]我们通过为员工技能、工作经验等实体建立领域模型,学习了聚合的概念。接下来三节课,我们会以员工聚合为例,学习聚合的实现。 上节课我们讲过,聚合的一个主要特征是具有不变规则。而维护不变规则的前提是要做好对聚合的封装,否则,外部...

手把手教你落地DDD

16、聚合的实现(中):怎样实现不变规则

你好,我是钟敬。 上节课我们学习了聚合的封装,它的目的是确保不变规则。那么,具体来说,封装是怎样确保不变规则的呢?为回答这个问题,今天我们继续来讨论怎样为聚合实现不变规则。 另外,上个迭代我们说过,仓库(Repository)是以聚合为单位进行持久化...

手把手教你落地DDD

17、聚合的实现(下):怎样用事务保护聚合

你好,我是钟敬。 [上节课]我们完成了添加员工的功能,并且实现了关于技能和工作经验的不变规则。今天我们重点要做两件事。第一,是继续完成修改员工的功能。 另外,假如不考虑并发的情况,上节课的逻辑已经足以保证不变规则了。但是正如我们在[第14节课]讲聚合...

手把手教你落地DDD

18、值对象(上):到底什么是值对象

你好,我是钟敬。 前面几节课我们学习了聚合,这节课我们继续学习DDD中另一个有用的概念——值对象。 DDD 把领域对象分成了两种:一种是实体,另一种是值对象。前面我们讨论的组织、员工等等都是实体。而值对象则往往是用来描述实体的属性“值”的。值对象在一...

手把手教你落地DDD