领域 子域 核心域 通用域 支撑域

领域 用来确定范围(模糊的范围),范围即是边界,DDD 的领域就是这个边界内要解决的业务问题域。

领域在拆分就是子域 子域对应更小的问题域或更小的业务范围

子域可以根据自身重要性和功能属性划分为三类子域,它们分别是:核心域、通用域和支撑域

核心域:决定产品和公司核心竞争力的子域,它是业务成功的主要因素和公司的核心竞争力。结合商业模式+战略而定。

通用域:没有太多个性化的诉求,同时被多个子域使用的通用功能子域。

支撑域:必需但既不包含决定产品和公司核心竞争力的功能,也不包含通用功能的子域。

 核心域 对应价值流中的基本活动 , 通用域和支撑域对应支持流程

 

1:确定研究对象,也就是研究领域,如一颗桃树

2:对研究对象进行细分 将桃树细分为器官

3:对器官进行细分 将器官细分为组织

4:对组织进行细分 组织细分为细胞

拿保险行业举例:

根据业务关联度以及流程边界将保险领域细分为:承保、收付、再保以及理赔等子域,而承保子域还可以继续细分为投保、保全(寿险)、批改(财险)等子子域。

在投保这个限界上下文内可以建立投保的领域模型,投保的领域模型最后映射到系统就是投保微服务。这就是一个保险领域的细分和微服务的建设过程。

领域建模和微服务建设的过程和方法基本类似,其核心思想就是将问题域逐步分解,降低业务理解和系统实现的复杂度。

 

域可以拆分为多个子领域。一个领域相当于一个问题域,领域拆分为子域的过程就是大问题拆分为小问题的过程。在这个图里面保险领域被拆分为:投保、支付、保单管理和理赔四个子域。

子域还可根据需要进一步拆分为子子域,比如,支付子域可继续拆分为收款和付款子子域。拆到一定程度后,有些子子域的领域边界就可能变成限界上下文的边界了。

理论上限界上下文就是微服务的边界。我们将限界上下文内的领域模型映射到微服务,就完成了从问题域到软件的解决方案。

 

posted @ 2020-03-20 23:07  yangming0322  阅读(2268)  评论(0编辑  收藏  举报