DDD案例(2):从领域分析到代码实现(6)

DDD案例(2):从领域分析到代码实现(6)

DDD案例(2):从领域分析到代码实现(6)

DDD案例(2):从领域分析到代码实现(6)

DDD案例(2):从领域分析到代码实现(6)


遵循系统分层架构与菱形对称架构对代码模型的约束和规定,EAS系统的代码模型如图20-50所示。


DDD案例(2):从领域分析到代码实现(6)


所有限界上下文都采用了菱形对称架构规定的标准代码模型,只是根据具体情况作了少量调整。各个限界上下文在系统分层架构所处的层次,也通过包的命名空间清晰地呈现出来了。

20.3.4EAS的领域建模

在确定了EAS系统的限界上下文与系统上下文,并通过菱形对称架构和系统分层架构设计出EAS的整体架构后,接下来就进入了战术层面的领域建模阶段。考虑到篇幅原因,我仅选择了业务逻辑相对复杂的培训上下文,运用快速建模法对其进行领域分析建模,获得领域分析模型后,采用庖丁解牛的过程设计聚合,然后相继开展服务驱动设计与测试驱动开发获得最终的领域模型。

1.领域分析建模

领域分析建模阶段的关键是识别领域概念,为限界上下文建立领域分析模型。参考过程模型推荐使用快速建模法进行领域分析建模,它的基础是业务服务规约。以提名候选人业务服务为例,它的业务服务规约如下。

 

服务编号:EAS-0202

服务名:提名候选人

服务描述:

  作为一名协调者

  我想要提名候选人参加培训

  以便部门的员工得到技能培训的机会

触发事件:

  协调者选定候选人后,点击“报名”按钮

基本流程:

1.确定候选人是否已经参加过该课程

2.对培训票提名候选人

3.邮件通知获得提名的候选人

替换流程:

1a.候选人参加过该培训要学习的课程,提示员工已经学习过该课程

2a.提名操作失败,提示失败原因

验收标准:

1.被提名人属于候选名单中的员工

2.提名的票状态必须为Available

3.提名后的票状态为WaitForConfirm

4.候选人获得培训票

上一篇:React生态单元测试框架对比


下一篇:Jest单元测试