DDD之2领域概念

图中是暗黑领域,非常牛逼的技能。
背景
DDD中出现的名词: 领域,子领域,核心域,通用域,支撑域,限界上下文,聚合,聚合根,实体,值对象 都是关键概念,但是又比较晦涩,在开始DDD之前,搞清楚这些关键概念名词非常的重要。
那它们作用体现在哪里呢?

领域-子领域
领域是: 从事专门活动或者事业的范围。
领域的作用是:确定范围和边界
DDD研究和解决业务问题过程如下:

DDD中的领域是:边界中要解决的业务问题域
领域就是范围,范围有大小之分,所以,DDD中大范围的叫领域,小范围的叫子领域;

DDD是一种处理高度复杂领域的设计思想,试图分离技术实现的复杂度。
那么问题来了?
面对错综复杂的业务领域,DDD是如何让业务从复杂变得简单,更容易理解? 如何让技术实现更容易?
**
答:跟自然科学的研究方法类似。

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


小结:
1,领域可以逐级细分为子领域,每个子领域都有一个知识体系(DDD的领域模型),
2,当所有的子领域的知识体系都建立完毕,就完成了对领域的知识体系建立,即建立了全域的领域模型。
从业务领域来分析对比二者的细分过程是否一致。
保险行业

对比结果:不同行业业务模型不一样,但是领域建模和微服务建设过程基本一样,核心思想:把问题领域逐步细分为子领域,从而降低业务理解和系统实现的复杂度。
核心域-通用域-支撑域
领域可以按照规则细分为子领域,子领域按照重要程度和功能特性有分为3类。即核心域,通用域,支撑域;

为什么要对子领域再进行核心域,通用域,支撑域的划分?目的是什么?
公司的IT系统建设过程中,资源和预算有限,在不同类型的子领域有不同的关注度和资源投入。
重要程度跟公司的战略方向和商业模式有关系,不同的公司,关注点不一样,即商业模式不同,核心领域的划分结果不同。
在公司领域细分、建立领域模型和系统建设时,我们就要结合公司战略重点和商业模式,找到核心域了,且重点关注核心域。
小结
领域的核心思想是逐级细分子领域,来降低业务的理解复杂度和技术实现的复杂度。
核心域,通用域,支撑域的划分目的是:区分不同的子领域在公司的重要程度和功能属性,从而提供不同的资源投入策略和关注度。

一句话来表达:
领域拆分为子领域就是做减法的过程,降低了业务的理解复杂度和系统实现的复杂度,而核心域,通用域,支撑域的划分是跟公司的商业模式有关系的,决定了子领域的不同优先级和资源投入策略。
原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。
我会持续分享Java软件编程知识和程序员发展职业之路,欢迎关注,我整理了这些年编程学习的各种资源,关注公众号‘李福春持续输出’,发送'学习资料'分享给你!
DDD之2领域概念的更多相关文章
- DDD(Domain-Driven Design) 领域驱动设计
DDD(Domain-Driven Design) 领域驱动设计 1. DDD(Domain-Driven Design)是什么? DDD是Eric Evans在2003年出版的<领域驱动设计: ...
- 领域驱动设计(DDD)部分核心概念的个人理解
领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...
- 领域驱动设计(DDD)部分核心概念的个人理解(转)
领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...
- DDD学习笔录——领域驱动设计DDD概念总结
- DDD战略设计相关核心概念的理解
前言 本文想再讨论一下关于领域.业务.业务模型.解决方案.BC.领域模型.微服务这些概念的含义和关系.初衷是我发现现在DDD领域建模以及解决方案落地过程中,常常对这些概念理解不清楚或者有歧义,导致我们 ...
- 【DDD】持久化领域对象的方法实践
[toc] 概述 在实践领域驱动设计(DDD)的过程中,我们会根据项目的所在领域以及需求情况捕获出一定数量的领域对象.设计得足够好的领域对象便于我们更加透彻的理解业务,方便系统后期的扩展和维护,不至于 ...
- 从壹开始微服务 [ DDD ] 之十 ║领域驱动【实战篇·中】:命令总线Bus分发(一)
烽火 哈喽大家好,老张又见面了,这两天被各个平台的“鸡汤贴”差点乱了心神,博客园如此,简书亦如此,还好群里小伙伴及时提醒,路还很长,这些小事儿就随风而去吧,这周本不打算更了,但是被群里小伙伴“催稿”了 ...
- 【DDD】使用领域驱动设计思想实现业务系统
最近新接了一个业务系统——社区服务系统,为了快速熟悉和梳理老系统的业务逻辑和代码,同时对老系统代码做一些优化,于是打算花上一个月时间不间断地对老系统服务进行重构.同时,考虑到社区业务的复杂性,想起了之 ...
- DDD学习笔录——领域驱动设计的常见误区(即错误的理解)
可以将DDD看成一种开发思想体系:它促成了一种新的以领域为中心的思维方式. 它是一种学习过程,而非最终目标,这就是DDD的最大优势. 任何团队都可以编写一个软件来满足一组用例的需求,但那些将时间和精力 ...
随机推荐
- airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告
一:主要内容 框架功能及测试报告效果 airtest安装.环境搭建 框架搭建.框架运行说明 airtest自动化脚本编写注意事项 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的 ...
- Spring AOP概述
一.AOP的基本概念: 首先先给出一段比较专业的术语: 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的 ...
- wmic 内网使用
先决条件: 1.远程服务器启动Windows Management Instrumentation服务,开放TCP135端口,防火墙放开对此端口的流量(默认放开): 2.远程服务器的本地安全策略的“网 ...
- Codeforces Round #577 (Div. 2) D. Treasure Hunting
Codeforces Round #577 (Div. 2) D. Treasure Hunting 这个一场div2 前面三题特别简单,这个D题的dp还是比较难的,不过题目告诉你了只能往上走,所以 ...
- SpringCloudStream学习(二)RabbitMQ中的交换机跟工作模式
知识储备: 交换机: RabbitMQ中有4中交换机,分别是 (FANOUT)扇形交换机: 扇形交换机是最基本的交换机类型,它所能做的事情非常简单---广播消息.扇形交换机会把能接收到的消息全部发 ...
- Coursera课程笔记----C程序设计进阶----Week 4
指针(一) (Week 4) 什么是"指针" 互联网上的资源--地址 当获得一个地址,就能得到该地址对应的资源,所以可以把"网址"称为指向资源的"指针 ...
- 053.集群管理-Helm部署及使用
一 Helm概述 1.1 Helm介绍 Helm 是 Kubernetes 的软件包管理工具.包管理器类似 Ubuntu 中使用的apt.Centos中使用的yum 或者Python中的 pip 一样 ...
- 数学建模(二)优劣解距离法Topsis模型部分
步骤: (一)统一指标类型:指标正向化(转化为极大型)(论文) 越大越好极大型指标,效益型指标 越小越好极小型指标,成本型指标 max-x,max=max{xi} 落在某个区间[a,b]是最好的,区间 ...
- [hdu3364]xor方程组消元
题意:n个灯,m个开关,给定每个开关控制的灯,全部的灯初始时全部熄灭,开关按一下其所控制的灯的状态全部反转,开关最多只能按一下.问达到目标状态的方案数. 思路:xor方程组的模型. 1 2 3 4 5 ...
- Mysql 常用函数(10)- strcmp 函数
Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html strcmp 的作用 比较两个字符串的顺序是否完全 ...
