图中是暗黑领域,很是牛逼的技能。程序员
DDD中出现的名词: 领域,子领域,核心域,通用域,支撑域,限界上下文,聚合,聚合根,实体,值对象 都是关键概念,可是又比较晦涩,在开始DDD以前,搞清楚这些关键概念名词很是的重要。编程
那它们做用体如今哪里呢?微服务
领域是: 从事专门活动或者事业的范围。
领域的做用是:肯定范围和边界学习
DDD研究和解决业务问题过程以下:spa
DDD中的领域是:边界中要解决的业务问题域设计
领域就是范围,范围有大小之分,因此,DDD中大范围的叫领域,小范围的叫子领域;对象
DDD是一种处理高度复杂领域的设计思想,试图分离技术实现的复杂度。blog
那么问题来了? 资源
面对错综复杂的业务领域,DDD是如何让业务从复杂变得简单,更容易理解? 如何让技术实现更容易?
**
答:跟天然科学的研究方法相似。it
能够看看植物的完整生物知识学体系创建过程。
小结:
1,领域能够逐级细分为子领域,每一个子领域都有一个知识体系(DDD的领域模型),
2,当全部的子领域的知识体系都创建完毕,就完成了对领域的知识体系创建,即创建了全域的领域模型。
从业务领域来分析对比两者的细分过程是否一致。
保险行业
对比结果:不一样行业业务模型不同,可是领域建模和微服务建设过程基本同样,核心思想:把问题领域逐步细分为子领域,从而下降业务理解和系统实现的复杂度。
领域能够按照规则细分为子领域,子领域按照重要程度和功能特性有分为3类。即核心域,通用域,支撑域;
为何要对子领域再进行核心域,通用域,支撑域的划分?目的是什么?
公司的IT系统建设过程当中,资源和预算有限,在不一样类型的子领域有不一样的关注度和资源投入。
重要程度跟公司的战略方向和商业模式有关系,不一样的公司,关注点不同,即商业模式不一样,核心领域的划分结果不一样。
在公司领域细分、创建领域模型和系统建设时,咱们就要结合公司战略重点和商业模式,找到核心域了,且重点关注核心域。
领域的核心思想是逐级细分子领域,来下降业务的理解复杂度和技术实现的复杂度。
核心域,通用域,支撑域的划分目的是:区分不一样的子领域在公司的重要程度和功能属性,从而提供不一样的资源投入策略和关注度。
一句话来表达:
领域拆分为子领域就是作减法的过程,下降了业务的理解复杂度和系统实现的复杂度,而核心域,通用域,支撑域的划分是跟公司的商业模式有关系的,决定了子领域的不一样优先级和资源投入策略。
原创不易,关注诚难得,转发价更高!转载请注明出处,让咱们互通有无,共同进步,欢迎沟通交流。
我会持续分享Java软件编程知识和程序员发展职业之路,欢迎关注,我整理了这些年编程学习的各类资源,关注公众号‘李福春持续输出’,发送'学习资料'分享给你!
![]()