• DDD之2领域概念


    image.png

    图中是暗黑领域,非常牛逼的技能。

    背景

    DDD中出现的名词: 领域,子领域,核心域,通用域,支撑域,限界上下文,聚合,聚合根,实体,值对象 都是关键概念,但是又比较晦涩,在开始DDD之前,搞清楚这些关键概念名词非常的重要。

    那它们作用体现在哪里呢?

    file

    领域-子领域

    领域是: 从事专门活动或者事业的范围。 
    领域的作用是:确定范围和边界

    DDD研究和解决业务问题过程如下:

    file

    DDD中的领域是:边界中要解决的业务问题域

    领域就是范围,范围有大小之分,所以,DDD中大范围的叫领域,小范围的叫子领域;

    file

    DDD是一种处理高度复杂领域的设计思想,试图分离技术实现的复杂度。

    那么问题来了?

    面对错综复杂的业务领域,DDD是如何让业务从复杂变得简单,更容易理解? 如何让技术实现更容易?
    **
    答:跟自然科学的研究方法类似。

    file

    可以看看植物的完整生物知识学体系建立过程。

    image.png

    file

    小结:

    1,领域可以逐级细分为子领域,每个子领域都有一个知识体系(DDD的领域模型),
    2,当所有的子领域的知识体系都建立完毕,就完成了对领域的知识体系建立,即建立了全域的领域模型。

    从业务领域来分析对比二者的细分过程是否一致。

    保险行业

    file

    对比结果:不同行业业务模型不一样,但是领域建模和微服务建设过程基本一样,核心思想:把问题领域逐步细分为子领域,从而降低业务理解和系统实现的复杂度

    核心域-通用域-支撑域

    领域可以按照规则细分为子领域,子领域按照重要程度和功能特性有分为3类。即核心域,通用域,支撑域;

    file

    为什么要对子领域再进行核心域,通用域,支撑域的划分?目的是什么?

    公司的IT系统建设过程中,资源和预算有限,在不同类型的子领域有不同的关注度和资源投入。

    重要程度跟公司的战略方向和商业模式有关系,不同的公司,关注点不一样,即商业模式不同,核心领域的划分结果不同。

    在公司领域细分、建立领域模型和系统建设时,我们就要结合公司战略重点和商业模式,找到核心域了,且重点关注核心域。

    小结

    领域的核心思想是逐级细分子领域,来降低业务的理解复杂度和技术实现的复杂度。

    核心域,通用域,支撑域的划分目的是:区分不同的子领域在公司的重要程度和功能属性,从而提供不同的资源投入策略和关注度。

    file

    一句话来表达:
    领域拆分为子领域就是做减法的过程,降低了业务的理解复杂度和系统实现的复杂度,而核心域,通用域,支撑域的划分是跟公司的商业模式有关系的,决定了子领域的不同优先级和资源投入策略。

    原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。
    我会持续分享Java软件编程知识和程序员发展职业之路,欢迎关注,我整理了这些年编程学习的各种资源,关注公众号‘李福春持续输出’,发送'学习资料'分享给你!

  • 相关阅读:
    attr全选第三次失效
    数据库拆分案例
    c#日期格式化
    MVC CheckBoxList的实现
    SQLSERVER如何使用递增排序的GUID做主键
    .net App_Browser文件夹的作用
    如何强制浏览器使用兼容模式
    MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交
    数据库大数据量迁移的解决思路
    IIS同时实现网站部分使用https协议访问另一部分http访问
  • 原文地址:https://www.cnblogs.com/snidget/p/12995676.html
Copyright © 2020-2023  润新知