回顾
上文我们讲了事件风暴,找出了系统中所有的事件,都通过"something has been done"的形式描述,如"填空题被创建"等
DDD整体的三个阶段是
第一阶段:战略设计 ->行为模型
第二阶段:战术设计 ->领域模型
第三阶段:实施落地 ->实现模型
命令风暴
什么是命令
命令是领域事件触发的动作,被执行之后,创建领域事件
命令触发的原因有哪些?
- 用户
- 外部系统
- 定时任务
- 事件
命令风暴的表现方式
寻找命令的过程
寻找命令的意义
当找到了需求描述中所有命令,我们就能清晰的了解到系统需要进行哪些操作,分别是由哪些用户,外部系统,定时任务,事件来触发的
寻找聚合
聚合的概念
- 命令和事件中都出现了的名词
- 被独立访问的业务单元
- 一组领域对象的组合
寻找聚合的过程
如图所示,将命令风暴中整理好的命令,找出对应的命令和事件都出现的名词,将名词相同的命令,按照右图的方式聚合在一起,这样就找到一组领域对象的聚合
聚合的生命周期
聚合是有独立的生命周期
聚合的意义
- 一组领域对象的集合,且能够构成一个独立的单元存在
- 识别关键"术语",打破事件的时间线
- 提供更大的视野,帮助业务模型不断精炼
根据第二节题目中的要求,下边分别给出需求中的命令风暴和聚合整理的图
命令风暴
寻找聚合
至此,已经梳理出了系统中有哪些具体的操作,在哪些实体上有什么样的操作