简单总结下在项目中DDD的应用过程。
基于 DDD 的微服务设计通常采用事件风暴方法。
通过事件风暴完成领域模型设计,划分出微服务逻辑边界和物理边界,定义领域模型中的领域对象,指导微服务设计和开发。
这里的重点,是根据领域划分出清晰的边界,而且这个过程是随着领域知识的深入,不断迭代的。
事件风暴的过程,通常包括产品愿景、场景分析、领域建模、微服务设计和拆分等几步。
1.产品愿景
产品愿景是用于确定产品或项目目的,明确市场需要和核心需求。
比如下面介绍的系统,是个大数据分析软件,指在根据具体规则对数据生成预警,数据量大概在PB级别。
当用户创建分析任务,对人员的数据实时计算预警结果,并触发用户。
2.场景分析
场景分析是根据产品愿景和用户需求,确定需要满足的业务场景。
分析本系统后业务场景有
- 用户选择规则和人员,创建分析任务。
- 任务创建后,需要执行审批。
- 根据分析任务和人员数据,生成预警。
- 根据分析任务和预警数据,生成通知触发用户。
3.领域建模
领域建模是根据业务场景和问题域进行分析,建立领域模型,划分出清晰的边界。
向上通过限界上下文指导微服务边界设计,向下通过聚合指导实体的对象设计。