1.实体、值对象
实体 or 值对象 User:name、sex、age、address(country、province、city)地址只承担描述实体的作用(比如送货信息)则设计为值对象如果需要对它进行修改/查询等则设计为实体。
2.聚合、聚合根
1.聚合的目的是为了实现数据一致性更新,聚合根是实现手段;
2.聚合:可以独立作为一个微服务,是拆分微服务的最小单元,但也不建议过度拆分;
3.聚合根:聚合根是实体,具有全局唯一标识,有独立的生命周期(比如“订单”)
4.先找到聚合根,再找到聚合,再找到限界上下文。
3.限界上下文
1.**领域专家(业务方、产品、运营、商务)、架构师、开发人员**通过**事件风暴(业务分析)**来划分限界上下文;
2.按照语义的边界来考虑,在限界上下文内定义通用语言比如商品(商品在商品子域和物流子域的不同定义);
3.限界上下文主要用来封装通用语言和领域对象;
4.一个限界可以包含多个子域,一般一个限界上下文对应一个子域
4.领域事件
领域服务之间:不要互相调用,高内聚,低耦合,减少影响,最终一致性领域服务之内:事务强一致性
5.核心域、支撑域、通用域
中台:核心域做的东西下沉到支撑域Saas平台:核心域做的东西下沉到通用域
6.领域建模
和微服务建设的过程和方法基本类似,其核心思想就是将问题域逐步分解,降低业务理解和系统实现的复杂度。大事化小,小事化了。
网友评论