-
团队成员和领域专家聚集在一个开放的区域,借助墙、白板和贴纸等工具,采用头脑风暴形式,根据业务场景或用户旅程分析,列出所有领域事件,对每一个事件标注出导致该事件的命令,为每一个事件标注出命令的发起方。
-
从命令和领域事件中提取产生这些业务行为的对象,即实体或值对象。根据命令来提取服务或实体的方法。这个过程我们可以采用名词和动词分析法,比如根据名词提取实体,根据动词提取命令来设计实体的方法或者服务。
-
根据领域对象之间的依赖关系,构建聚合。首先,从众多实体中根据聚合根的特点找出聚合根,比如:是否有独立的生命周期?是否有全局唯一 ID?是否可以创建或修改其他对象?是否有专门的模块来管理这个实体?然后,根据业务内聚的原则,找出与聚合根关联的所有实体和值对象,构建出“高内聚,低耦合”的聚合。
-
划分限界上下文,构建领域模型,将多个聚合归类到同一个上下文语义环境,划定限界上下文边界,建立上下文映射,完成领域模型的构建。
-
应用之间功能模块级的变化。这类变化通常会影响到微服务之间的功能模块的拆分或重组,所以影响就会比较大。
-
应用内方法或者服务级的变化。这类变化对微服务的影响一般都比较小,我们修改实体方法或服务,就可以相对容易地解决。
本文始发于微信公众号(分布式实验室):深度解析DDD中台和微服务设计 | 留言送书
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论