前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

一、前言

“架构映射对应解空间的战略设计层次。“限界上下文是架构映射阶段的基本架构单元。“架构映射阶段由如下3组同构系统构成”

3组同构系统 说明
架构定义的概念系统与架构设计的模式系统 对应架构映射阶段的概念层次。概念层次的同构系统为架构映射建立了理论基础,
问题空间的真实系统与解空间的软件系统 对应架构映射阶段的设计层次,设计层次的同构系统体现了动态的架构映射过程,
设计方案的架构系统与团队组织的管理系统 对应架构映射阶段的管理层次,管理层次的同构系统则对映射获得的架构提出了划分软件元素的约束,使得在战略层次(架构层次)对问题空间的求解变得有序而富有指导意义

二、概念层次的同构系统

1、架构定义

一个良好的架构应该具有如下基本设计元素

涉及元素 作用
功能分解的软件元素 “软件元素的分解能够有效地控制规模
软件元素之间的关系  
软件元素与外部环境之间的关系 “梳理软件元素及外部环境的关系可以清晰结构
指导架构设计与演化的原则 “架构设计与演化原则保证了架构能够响应变化

2、架构方案的推演

架构开发方法“规划了组成企业架构的内容:业务架构、信息系统架构(分为应用架构和数据架构)和技术架构。它们分别对应架构模型的3个层次:业务层、应用层和技术层”,如下图

image-20231128182022110

问题1:“当业务需求发生变化时,如果需要调整目标系统的业务架构,该怎么让数据架构、应用架构和技术架构随之发生的变化降到最少”

答案:“当变化不可避免时,一种行之有效的方法是共同顺应变化的方向,如此就能降低变化带来的影响。若能寻找到一种“软件元素”将业务架构与应用架构绑定起来,就能让它们共同顺应业务需求变化的方向。在领域驱动设计中,这样的软件元素就是限界上下文

3、领域驱动架构风格

“构建在限界上下文之上的系统体现了一种相同的架构风格,我将其称为领域驱动架构风格”,“整个目标系统的解空间分为系统上下文与限界上下文两个层次它们共同指导设计与演化的架构原则共同组成了领域驱动架构风格的模式系统”

⬤ 系统上下文层次界定了目标系统与伴生系统之间的关系,通过系统分层架构模式进行约束;

⬤ 限界上下文体现了领域模型和业务能力的边界,通过菱形对称架构模式进行约束。

image-20231128184356850

三、设计层次的同构系统

“价值需求以组织为视角分析了目标系统的愿景与范围,形成以系统上下文为核心的组织级映射

“业务需求的业务服务以目标系统为视角体现了具体的业务功能,形成以限界上下文与菱形对称架构为核心的业务级映射

“业务需求对子领域的划分从业务价值的角度确定了各个业务功能所处的层次,形成以系统分层架构为核心的系统级映射

层次 说明
组织级映射: 站在整个组织的高度,通过全局分析阶段输出的价值需求确定组织级的系统上下文。
业务级映射: 通过全局分析阶段输出的业务需求,根据业务相关性对业务服务进行归类与归纳,识别出边界合理的限界上下文,并为其建立菱形对称架构。
系统级映射: 进入系统内部,在全局分析阶段划分的子领域指导下,建立系统分层架构,将属于核心子领域的限界上下文映射为业务价值层,将通用子领域和支撑子领域的限界上下文映射为基础层,并确定它们之间协作的上下文映射模式,定义服务契约。”

image-20231128185115622

四、管理层次的同构系统

“它的基本构成单元则为开发该限界上下文的团队。为了满足团队的高效开发需求,在将架构系统映射为管理系统时,必须考虑交流与协作的成本,组建的团队需要符合领域驱动设计统一过程中团队管理支撑工作流的要求。

1、组建团队的原则

“要符合团队管理支撑工作流的要求,首先需要考虑团队的规模。一个理想的开发团队规模最好能符合亚马逊公司创始人Jeff Bezos提出的“Two-Pizza Teams规则”,即2PTs规则。该规则认为“如果两个比萨都不能喂饱一个团队的成员,那这个团队的规模就太大了”。大体而言,2PTs规则就是要将团队成员人数控制在5~9人,以形成一个高效沟通的小团队

2、康威定律的运用

“遵循领域驱动架构风格,目标系统的系统分层架构自底向上分别由基础层、业务价值层、边缘层和客户端层构成。根据康威定律,

⬤ 基础层的限界上下文取决于上下文映射模式,可映射为管理系统的组件团队或领域特性团队

⬤ 业务价值层由限界上下文体现纵向的业务能力,故而映射为管理系统的领域特性团队

⬤ 边缘层与客户端层主要面向客户,是站在客户体验的角度思考功能的划分,需要的技能主要为前端开发的单一技能,故而映射为管理系统的前端组件团队

根据这样的映射关系,就可获得对应的团队组织结构”

image-20231128185801510

ContactAuthor