家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件 家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件
家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件 家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件
家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件 家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件
家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件 家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件
家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件 家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件
在线咨询

实时沟通,解决您所有问题!

立即拨打

立即咨询,解决您所有问题!

立即申请免费试用账号
扫码微信咨询 家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件
扫码微信咨询 家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件

领域驱动设计(DDD:Domain-Driven Design)

发布时间:2023-08-11 浏览次数:

领域驱动设计(DDD:Domain-Driven Design)

Eric Evans的“Domain-Driven Design领域驱动设计”简称DDD,Evans DDD是一套综合软件系统分析和设计的面向对象建模方法,本站Jdon.com是国内公开最早讨论DDD网站之一,可订阅DDD专题


过去系统分析和系统设计都是分离的,这种割裂导致:对需求分析设计的结果无法直接落地为代码,而能够运行的代码却无法完整实现业务功能,同时,软件Bug频出,维护升级重写难度大。

DDD则打破了这种隔阂,提出了领域模型概念,统一了分析和设计编程,使得软件能够更灵活快速跟随需求变化。见下面DDD与传统CRUD或过程脚本或者面向数据表等在开发效率上比较:

ddd

DDD革命性在于:领域模型准确反映了业务领域语言,领域语言是每个行业的行话,正如科学需要数学语言;算法需要编程语言;法律需要法律术语;绘画音乐建筑等也有自己的艺术语言,专业领域都有领域语言。

DDD最大好处是:接触到需求第一步是首先理解其领域语言,提炼出领域模型。DDD让你首先考虑的是领域语言(在特定上下文中的含义),落地的代码能直观映射到领域模型。

DDD难点在于Bounded Context(BC:有界上下文/限界上下文),关键是在于"Context":

  • Context:Context is King已经成为现代认知最基本的共识之一

  • Context在中文里或指: 上下文、语境、情况、环境、情境、场景、境地、范围、阶段、局限、背景、周期、顺势、作用域、范式、来龙去脉、路径、道、假设、前提、预设、第一性原理、原因...

中文没有专门Context单词,导致人们忽视其通用广泛存在;另外,认知缺乏边界感也是阻碍之一。

识别上下文是界定问题在哪里,在界定的上下文边界内进行符号推理是解决问题。什么是Context上下文?

DDD是解决复杂中大型业务系统的一套行之有效方式,DDD认为很多原因都会造成软件的复杂性,我们不可能避免所有复杂性,一个好的领域模型是控制复杂性的关键。领域模型的价值在于提供一种通用的语言,使得领域专家、产品经理和软件技术人员联系在一起,沟通无歧义。

DDD 的优势:

  • 对齐:正如桥梁连接两边一样,领域设计驱动确保软件开发与业务领域无缝连接。

  • 灵活性:通过清晰的领域模型,设计驱动发展(DDD)提供了一个基础,可以更好地适应变化,与不断发展的业务需求保持一致。

  • 改进协作:通过建立共享语言,可确保开发人员和领域专家之间的清晰度和统一性。


DDD 有许多组成部分和概念,以下是其中的一些概念:

  • 领域通用语言UL:领域本体语言,业务行话术语,自成逻辑体系的语系,UL是技术和业务沟通的桥梁。

  • BC有界上下文:受专业术语一致限制的形式边界,术语内容含义取决于其语境和上下文。

  • 聚合体:领域模型(实体和价值对象)的对象群,作为一个单一的单元来处理和交易。


个人观点:

  • 事件=点、上下文=线、子域=面

  • 线由点组成,建议从事件活动点开始,从下而上涌现中发现上下文。

  • 子域的面由很多上下文的线组成。

  • 由下而上设计流程:点->线->面;而不是由上而下设计:面->线->点

  • DDD建模是一个探索发现过程,无法从顶层设计开始

  • 由上而下是一种科学还原论方法,认为事物由分子组成,分子由原子组成,只要找到所有原子就能组装成任何一个物体,其实很多物体现象是由原子之间相互作用才有的涌现属性,如果拆分成单个原子反而找不到这些属性,1+1>2,大于2的属性不属于俩个1,而是两个1组合在一起才有的。

  • 事物由下而上涌现产生,如果你颠倒次序,由上而下学习复制,你以为这样的复制还是原来的那个事物吗?上下颠倒制造复制一个就是原来的那个吗?这是在做模具吗?不是,世界不是用机械模具复制出来的。

DDD落地架构有:Clean架构、六边形架构、 CQRS、Event Source几大大相关领域。下图是传统以数据库为中心的架构与使用DDD实现以领域为中心架构的区别。

服务器后端架构发展两个阶段:

  1. UI+Service+DataBase的多层SOA架构(上图左),这种服务+数据表模型的架构易使服务变得囊肿,难于维护拓展,伸缩性能差,见这里讨论或Spring Web 应用的最大败笔

  2. DDD+ 模块化单体或微服务:DDD作为数据建模的升级,主要贡献在于领域界线的划分,界定界限以后,通过两种架构实现领域模型代表的业务功能:模块化单体或微服务架构。


DDD专门为解决复杂性而诞生,因此解决思路完全不同于传统的CRUD,但是DDD本身掌握起来并不会感觉复杂,从程序员角度看,DDD其实是研究将包含业务逻辑的ifelse语句放在哪里的学问,包括业务流程、业务规则、规则引擎、术语字典、DSL或正则表达式、商业智能和数据分析等都属于业务逻辑的范畴领域。

如需要深入了,可继续阅读此文:https://zhuanlan.zhihu.com/p/641295531

家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件
预约演示

小叮当管理ERP在行业内顶尖,实现各种数字化流程管理,获得数万家企业的认可。

家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件

小叮当软件

装饰行业管理与营销服务方案提供商

装饰行业管理与营销服务方案提供商

注册体验账号,享受体验账号和试用培训。

下一篇: 没有了
上一篇
家装ERP,装修ERP,家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件,小叮当ERP,小叮当装修ERP
593

NVM+NodeJS+NPM+PNPM+Vite+Vue3+ElementPlus项目环境搭建教程

小叮当ERP
发布时间:2022-10-10
下一篇
家装ERP,装修ERP,家装管理软件,装修管理软件,装饰公司管理软件,家装公司管理系统,装修公司管理软件,装修公司管理系统,家装公司管理软件,装修ERP管理软件,小叮当ERP,小叮当装修ERP
0

下一篇没有了

小叮当ERP
发布时间:2026-09-12

申请免费试用

小叮当致力于以 “快速增效” 的方式,让每一位装企用户提高工作效率