乐趣区

关于java:DDD划分领域子域核心域支撑域的目的

名词解释
在 DDD 衰亡的起因以及与微服务的关系中曾举了一个钻研桃树的例子,如果要钻研桃树,将桃树依据器官分成根、茎、叶、花、果实、种子,这每一种器官都能够认为是一个钻研畛域, 而畛域又有更加具体的细分, 分成子域、外围域、通用域、撑持域等,上面回顾桃树这个例子

DDD 划分畛域、子域、外围域、撑持域的目标
看下面这张图,如果钻研桃树是咱们的业务,那么如何更加疾速无效地钻研桃树呢?依据回顾,初中课本是这样钻研的:

第一步: 确定钻研的对象,即钻研畛域,这里是一棵桃树。

第二步: 依据钻研对象的某些维度,对其进行进一步的拆分,例如拆分成器官,而器官又能够分成营养器官,生殖器官,其中营养器官包含根、茎、叶, 生殖器官包含花、果实、种子, 那么这些就是咱们要钻研的子域。

第三步: 当初就能够对子域进行划分了,找出外围域, 通用域, 撑持域, 至于为什么要这么划分,前面再解释,当咱们找到外围域之后,在各个子域进行深一步的划分,划分成组织,例如分成爱护组织, 养分组织, 疏导组织,这就儿也能够了解成将畛域持续划分为子域的过程。

第四步: 对组织进行进一步的划分,能够分成细胞,例如根毛细胞、导管细胞等等

咱们有没有必要持续拆分细胞呢?这个取决于咱们钻研的业务,例如在之前光学显微镜时,钻研到细胞也就截止了,具体到其余业务,也是钻研到某一步就不须要持续拆分,而这最小档次的畛域,通常就是咱们所说的实体,聚合、聚合根、实体以及值对象等内容会在前面深刻理解。

DDD 划分畛域、子域、外围域、撑持域的目标
上面演绎一下下面提到的几个名词的概念 :

畛域:往往就是业务的某一个局部,例如电商的销售局部、物流局部、供应链局部等,这些对于电商来说就是各个领域(模块),畛域次要作用就是用来驱动范畴,DDD 会将问题范畴限定在特定的边界内,在这个边界内建设畛域模型,进而用代码实现该畛域模型,解决相应的业务问题。简言之,DDD 的畛域就是这个边界内要解决的业务问题域。

子域:绝对的一个概念,咱们能够将畛域进行进一步的划分,这时候就是子域,甚至能够对子域持续划分造成 子子域(仍旧叫子域),就好比当咱们钻研动物时,如果钻研的对象是桃树,那么果实根茎叶是畛域,可是如果不仅仅要钻研果实,还要钻研组织甚至细胞,那么钻研的就是果实的子域、组织的子域。

外围域:所有畛域中最要害的局部,什么意思呢,就是最外围的局部,对于业务来说,外围域是企业基本竞争力,也是发明利润里最要害的局部,例如电商外面那么多畛域,最重要的是什么?就是销售零碎,无论你是 2B 还是 2C,还是 PDD,这些外围模块就是外围域。

通用域: 除了外围域之外,还须要本人做的一些畛域,例如鉴权、日志等,特点是可能被多个畛域专用的局部。

撑持域: 零碎中业务分析阶段最不重点关注的畛域,也就是非核心域非通用域的畛域,例如电商外面的领取、物流,仅仅是为了撑持业务的运行而存在,甚至能够去购买他人的服务,这类的畛域就是撑持域。

须要留神的是,这些名词在理论的微服务设计和开发过程中不肯定用得上,然而能够帮忙了解 DDD 的外围设计思维以及理念,而这些思维和理念在理论的 IT 策略设计业务建模和微服务设计上都是能够借鉴的。

为什么要划分外围域、通用域、撑持域?
通过下面能够晓得,决定产品和公司外围竞争力的子域是外围域,它是业务胜利的次要因素和公司的外围竞争力。没有太多个性化的诉求,同时被多个子域应用的通用性能子域是通用域。还有一种性能子域是必须的,但既不蕴含决定产品和公司外围竞争力的性能,也不蕴含通用性能的子域,它就是撑持域。

这三类子域相较之下,外围域是最重要的,咱们上面讲目标的时候还会以外围域为例具体介绍。通用域和撑持域如果对应到企业零碎,举例来说的话,通用域则是你须要用到的通用零碎,比方认证、权限等等,这类利用很容易买到,没有企业特点限度,不须要做太多的定制化。而撑持域则具备企业个性,但不具备通用性,例如数据代码类的数据字典等零碎。

那么为什么要划分出这些新的名词呢?先想一个问题, 对于桃树而言,根、茎、叶、花、果实、种子六个畛域哪一个是外围域?

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

因为每个人站的角度不一样,你如果是果农,那么果实就是外围域,你的大部分操作应该都是围绕进步果实产量进行,如果你是景区管理员,那么芳菲四月桃花盛开才是你重点关注,如果你是林场工作人员,那么树干才应该是你重点关注的畛域,看到没,对于同一个畛域划分的子域,每个人都有不同的了解,那么要通过探讨确定外围域,确保大家认同统一,对于理论业务开发来说,参加的人员泛滥,有业务方面的,有架构师,有后端开发人员,营销市场等等,势必要最开始就确定咱们的外围域,除了对立大家的意识之外还有什么益处呢?

对于一个企业来说,估算以及工夫是无限的,也就意味着工夫以及精力甚至金钱要尽可能多的花在外围的的中央。就好比电商,电商企业那么多,每一家外围域都有所差异,造成的市场后果也千差万别, 那么公司战略重点和商业模式应该找到外围域,且重点关注外围域。

总的来说,外围域、撑持域和通用域的次要指标是:通过畛域划分,辨别不同子域在公司内的不同性能
属性和重要性,从而公司可对不同子域采取不同的资源投入和建设策略,其关注度也会不一样。

如果本文对你有帮忙,别忘记给我个 3 连,点赞,转发,评论,
咱们下期见!学习更多 JAVA 常识与技巧,关注与私信博主(666)

退出移动版