导航

DDD的领域与核心域

Posted on 2022-12-17 14:32  蝈蝈俊  阅读(166)  评论(0编辑  收藏  举报

领域和子域

领域(domain):需要讨论的问题范围,称为域、领域或问题域。

子域(subdomain):对于域进行不同纬度切分相对内聚的单元。比如:电商业务涉及订单、库存、营销子域等。

比如:我们要研究桃树,桃树就是领域,将桃树根据器官分成根、茎、叶、花、果实、种子这些子域。

领域是一个组织所做的事情以及其中所包含的一切。每个组织都有他自己的业务方位和做事方式,这个业务范围以及在其中所进行的活动便是领域。

领域既可以表示整个业务系统,也可以表示其中的某个核心域或者支撑子域。

核心域、支撑域和通用域

通过领域划分,区分不同子域在公司内的不同功能属性和重要性,从而可对不同子域采取不同的资源投入和建设策略,其关注度也会不一样。

核心域

所有领域中最关键的部分,什么意思呢,就是最核心的部分,对于业务来说,核心域是企业根本竞争力,也是创造利润里最关键的部分。
例如:电商里面那么多领域,最重要的是什么?就是销售系统,无论你是2B还是2C,还是PDD,这些核心模块就是核心域。

通用域

多个子域使用的通用功能子域。例如:鉴权、日志等。

支撑域

系统中业务分析阶段最不重点关注的领域,也就是非核心域非通用域的领域,例如电商里面的支付、物流,仅仅是为了支撑业务的运转而存在,甚至可以去购买别人的服务,这类的领域就是支撑域。

如何区分?

对于桃树而言,根、茎、叶、花、果实、种子六个领域哪一个是核心域?

是不是有不同的理解?有人说是种子,有人说是根,有人说是叶子,也有人说是茎等等,为什么会有这种情况呢?

因为每个人站的角度不一样,

  • 你如果是果农,那么果实就是核心域,你的大部分操作应该都是围绕提高果实产量进行;
  • 如果你是景区管理员,那么芳菲四月桃花盛开才是你重点关注;
  • 如果你是林场工作人员,那么树干才应该是你重点关注的领域;

看到没,对于同一个领域划分的子域,每个人都有不同的理解。

对于实际业务研发来说,参与的人员众多,有业务方面的,有架构师,有后端开发人员,营销市场等等,势必要最开始就确定我们的核心域,这么做的好处:

  • 统一大家的认识,避免认知偏差,对人来说,做正确的事情比正确的做事更重要,选对方向比努力更重要;
  • 对于一个企业来说,预算以及时间是有限的,聚焦才能办成大事,集中力量办大事

总结

领域,核心域是决定做事的范围和方向,是必须首先确保的,否则就会走弯路,做无用功。