Data Mesh权威指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 领域驱动设计简介

领域驱动设计是一种基于业务接缝分解软件设计(模型)和团队分配的方法。它根据业务分解到领域的方式来分解软件,并根据每个业务领域使用的语言对软件进行建模。

2003年,Eric Evans在其著作Domain-Driven Designhttps://oreil.ly/T5saX)中首次引入这个概念。从此以后,DDD深刻地影响了现代架构思维,进而影响了组织建模。DDD是对源于业务数字化的快速增长的软件设计复杂性的一种回应。随着组织日益增长的数字资产(后台应用、数字服务、We b和移动技术)以及持续增加的特性,软件变得越来越复杂和难以管理。

DDD把领域定义为“知识、影响力或活动的领域的范围”。在Daff的例子中,听众订阅领域知晓在订阅和退订时发生的事件、管理订阅的规则,以及在订阅事件中生成的数据等。订阅领域确切地影响应该如何完成订阅,以及在订阅的过程中应该知道和捕获哪些数据。它有一组活动来完成诸如接入新的听众、触发支付等功能。我想给这个描述中添加成果。领域有特定的业务目标以及优化的成果。订阅领域的优化成果是最大化订阅者的数量,以及易于上手的流程和最小化中途退出的情况。

领域驱动设计以及基于领域拆分软件建模的想法极大地影响了过去十年的软件架构,比如微服务架构。微服务架构围绕业务领域能力将大型复杂系统分解为分布式服务,通过服务的松散集成,交付用户旅程和复杂的业务流程。

领域驱动设计从根本上改变了技术团队的组成方式,并促成了业务和技术跨功能团队的对齐。它极大地影响了组织规模化的方式,使得团队能够独立和自主地拥有领域能力和数字服务。

我强烈建议在将DDD的概念应用到数据之前,先熟悉DDD。