怎么划分领域、子域、核心域、通用域和支撑域

  • 如何理解领域和子域?
    • 什么是领域
    • 什么是子域
    • 怎么划分领域和子域
    • 如何理解核心域、通用域和支撑域?
    • 为什么要划分核心域、通用域和支撑域
  • 总结

DDD 的知识体系提出了很多的名词,像:领域、子域、核心域、通用域、支撑域、限界上下文、聚合、聚合根、实体、值对象等等,非常多。这些名词,都是关键概念,所以在这篇文章中重点了解 领域、子域、核心域、通用域和支撑域等重要概念。以及怎么划分领域?

如何理解领域和子域?

什么是领域

百度百科对领域的解释:“领域具体指一种特定的范围或区域。”由此可以看出:领域就是来确定范围的,范围即边界,这也是 DDD 在设计中不断强调边界的原因。

DDD 的领域就是这个边界内要解决的业务问题域(也符合特定的语义)。

什么是子域

既然领域是用来限定业务边界和范围的,那么就会有大小之分,领域越大,业务范围就越大,反之则相反。如果一个领域过大,还可以把领域可以进一步划分为子领域。划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务范围。

怎么划分领域和子域

DDD 的研究方法与自然科学的研究方法类似。当人们在自然科学研究中遇到复杂问题时,通常的做法就是将问题一步一步地细分,再针对细分出来的问题域,逐个深入研究,探索和建立所有子域的知识体系。当所有问题子域完成研究时,我们就建立了全部领域的完整知识体系了。


以植物研究时领域的细分为例:

第一步:确定研究对象,即研究领域,这里是一棵桃树。

第二步:对研究对象进行细分,将桃树细分为器官,器官又分为营养器官和生殖器官两种。其中营养器官包括根、茎和叶,生殖器官包括花、果实和种子。桃树的知识体系是我们已经确定要研究的问题域,对应 DDD 的领域。根、茎、叶、花、果实和种子等器官则是细分后的问题子域。这个过程就是 DDD 将领域细分为多个子域的过程。

第三步:对器官进行细分,将器官细分为组织。比如,叶子器官可细分为保护组织、营养组织和输导组织等。这个过程就是 DDD 将子域进一步细分为多个子域的过程。

第四步:对组织进行细分,将组织细分为细胞,细胞成为我们研究的最小单元。细胞之间的细胞壁确定了单元的边界,也确定了研究的最小边界。

每一个细分的领域都会有一个知识体系,也就是 DDD 的领域模型。在所有子域的研究完成后,我们就建立了全域的知识体系了,也就建立了全域的领域模型。

如何理解核心域、通用域和支撑域?

在领域不断划分的过程中,领域会细分为不同的子域,子域可以根据自身重要性和功能属性划分为三类子域,它们分别是:核心域、通用域和支撑域。

核心域:它是业务成功的主要因素和公司的核心竞争力。

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

支撑域:支撑其他领域业务,具有企业特性,但不具有通用性。

为什么要划分核心域、通用域和支撑域

以桃树为例:

不同的人对桃树的理解是不同的。如果这棵桃树生长在公园里,在园丁的眼里,他喜欢的是“人面桃花相映红”的阳春三月,这时花就是桃树的核心域。但如果这棵桃树生长在果园里,对果农来说,他则是希望在丰收的季节收获硕果累累的桃子,这时果实就是桃树的核心域。

在不同的场景下,不同的人对桃树核心域的理解是不同的,因此对桃树的处理方式也会不一样。园丁更关注桃树花期的营养,而果农则更关注桃树落果期的营养,有时为了保证果实的营养供给,还会裁剪掉疯长的茎和叶(通用域或支撑域)。

同样的道理,商业模式的不同会导致核心域划分结果的不同。有的公司核心域可能在客户服务,有的可能在产品质量,有的可能在物流。在公司领域细分、建立领域模型和系统建设时,我们就要结合公司战略重点和商业模式,找到核心域了,且重点关注核心域。

总结

领域的核心思想就是将问题域逐级细分,来降低业务理解和系统实现的复杂度。通过领域细分,逐步缩小微服务需要解决的问题域,构建合适的领域模型,而领域模型映射成系统就是微服务了。

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

怎么划分领域、子域、核心域、通用域和支撑域相关推荐

  1. 02 | 领域、子域、核心域、通用域和支撑域:傻傻分不清?

    目录 如何理解领域和子域? 如何理解核心域.通用域和支撑域? 那为什么要划分核心域.通用域和支撑域,主要目的是什么呢? 总结 DDD 的知识体系提出了很多的名词,像:领域.子域.核心域.通用域.支撑域 ...

  2. 02 | 领域、子域、核心域、通用域和支撑域

    如何理解领域和子域?我们先看一下汉语词典中对领域的解释:"领域是从事一种专门活动或事业的范围.部类或部门."百度百科对领域的解释:"领域具体指一种特定的范围或区域.&qu ...

  3. 域控-笔记二(域权限,域组,域管理,Kerberso 协议)

    文章目录 一. 域环境搭建 1.1 添加AD功能 1.2 安装 1.3 部署 二. 如何加入域 2.1 加入域 2.2 域中主机登录 2.3 退出域 2.4 添加域用户 三. 域权限 3.1 A-G- ...

  4. 整车域控制器的经典五域

    讲到这个问题先讲讲,什么是域控制器.域控制器的概念是伴随着整车电子电器架构的发展演变而来的.由于整车电子电器的日益复杂,传统的分布式架构已经无法满足日益增长的计算需求,也导致冗长的线束. 根据 201 ...

  5. 企业品牌私域化运营,私域流量只是起步

    文 | 公关之家 作者:Leon 私域是既增长之后备受关注的品牌概念性关键词,同时也是品牌全生命周期中各部门协同工作的重要目标. 企业品牌私域化运营,私域流量只是起步 品牌公关在企业公共关系对社会.媒 ...

  6. 2021-10-13企业品牌私域化运营,私域流量只是起步

    企业品牌私域化运营,私域流量只是起步 私域是既增长之后备受关注的品牌概念性关键词,同时也是品牌全生命周期中各部门协同工作的重要目标.品牌公关在企业公共关系对社会.媒体.公众的关系处理过程中,不仅需要充 ...

  7. 域安全(1)域的基本知识

    1.相比于传统的渗透测试,红队的攻击较为接近真实的入侵活动  红队是不择手段的,渗透测试是限定方法的 2.很多攻击手段都不是完全孤立的,而是连动化攻击 3.熟练掌握工具只是一小部分,各种原理的深度理解 ...

  8. 手绘10张图,把CSRF跨域攻击、JWT跨域认证说得明明白白的

    作者 | 写代码的明哥 来源 | Python编程时光 这篇文章本应该是属于 HTTP 里的一部分内容,但是我看内容也挺多的,就单独划分一篇文章来讲下. 什么是跨域请求 要明白什么叫跨域请求,首先得知 ...

  9. html 跨域_常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

最新文章

  1. AI设计师“鹿班”核心技术公开:如何1秒设计8000张海报?
  2. vty 虚拟终端连接 line vty 0 4 和line vty 5 15 区别
  3. f12控制台如何查看consul_Consul初探-从安装到运行
  4. NYOJ 460 项链
  5. 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(安装TensorFlow2.0)
  6. 把a文件删除b文件中的相同的行
  7. java跨站点脚本编制_跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 | 学步园...
  8. adb server version (31) doesn‘t match this client (39) 解决方案
  9. [技巧心得] 嵌套选择器优先级
  10. Precision、Recall、F计算:举例
  11. java 短信备份宝_Android实战教程第八篇之短信备份
  12. 【图像处理】换脸技术哪家强?Python来挑战,一键换脸,毫无破绽~
  13. 计算思维不是计算机科学的核心素养,信息技术学科核心素养
  14. 移动宽带覆盖小区查询 (广东范围)
  15. 微软苏州2018冬季实习面试经历
  16. Unity接入移动MM支付(Android)
  17. java Pattern和Matcher详解
  18. JVM进阶(八)——Stop The World(停顿类型STW)
  19. 【计算机视觉】完整版复习
  20. python抖音表白程序代码_python 下载抖音视频示例源码

热门文章

  1. xls/csv文件转换成dbf文件
  2. C# 微信扫码授权登录
  3. 更换主板开机logo
  4. c语言中fcntl.h函数库,fcntl函数的使用详解
  5. ANSI C、C89、C99和C51的区别
  6. 2021-04-08 从SONiC SAI到TAI
  7. JDK1.8的新特性
  8. 宇宙最强IDE vs2019升级
  9. socket server 用telnet调试正常,用SocketTool工具不行
  10. 怎么修改mysql的默认端口号