解构领域驱动设计》架构映射篇

简介: 解构领域驱动设计》架构映射篇

架构映射对应解空间的战略设计层次。


本阶段,映射成为了获得架构的主要设计手段。价值需求中利益相关者、系统愿景和系统范围可映射为系统上下文,业务活动通过对业务相关性的归类与归纳可映射为限界上下文,二者又是构成系统架构的重要层次,前者勾勒出解空间的控制边界,后者勾勒出领域模型的知识边界,组成了一个稳定而又具有演进能力的领域驱动架构。


限界上下文是架构映射阶段的基本架构单元,决定一个限界上下文边界的元素包括:领域对象、领域知识、角色和活动。限界上下文是领域模型的知识语境,又是业务能力的纵向切分,它满足自治单元的四个要素:

  • 最小完备
  • 自我履行
  • 稳定空间
  • 独立进化


一个自治的限界上下文一定遵循菱形对称架构模式。


菱形对称架构模式将整个限界上下文分为内部的领域层和外部的网关层,网关层根据调用方向分为北向网关和南向网关。


北向网关体现了“封装”的设计思想,根据通信方式的不同分为远程服务与应用服务;南向网关体现了“抽象”的设计思想,将抽象与实现分离,分为端口与适配器。在诸多上下文映射模式中,除了共享内核与遵奉者模式,都应在菱形对称架构网关层的控制下进行协作。


image.png

系统上下文对应了解空间的范围,它站在组织层面思考利益相关者、目标系统与伴生系统之间的关系。它通过系统分层架构体现目标系统的逻辑结构,并按照子领域价值的不同,为限界上下文确定了不同的层次。根据康威定律的规定,系统分层架构可以映射为由前端组件团队、领域特性团队与组件团队组成的开发团队。


限界上下文是顺应业务变化进行功能分解的软件元素,菱形对称架构规定了限界上下文之间、限界上下文与外部环境之间的关系,由系统分层架构模式与菱形对称架构模式组成的领域驱动架构风格则是指导架构设计与演进的原则。这些内容符合架构的定义,同时也是对控制软件复杂度的呼应。


领域建模要在架构的约束下进行,系统上下文和限界上下文的边界对领域模型起到了设计约束的作用。根据限界上下文的价值高低,属于支撑子领域和通用子领域的限界上下文,往往因为业务简单,无需进行领域建模,如此就能快速开发,降低开发成本。因此,架构映射是领域建模的前提,也可以认为是战略对战术的设计指导。


相关文章
|
7月前
|
设计模式 架构师 程序员
DDD洋葱架构才是 yyds!阿里大牛手记(DDD)领域驱动设计应对之道
虽然身为架构师,设计一个高质量的架构依然是复杂与困难的。 简单来说,动用大量的资源只为了一套优质的三高架构并不正确,而是该在了解当前业务现状的情况下,创造出灵活、可维护、健硕能成长的。
|
8月前
|
设计模式 供应链 测试技术
架构进阶之路:复杂业务开发与领域驱动设计
以下是在现公司,给成员做分享的资料。业务案例来自:一文教会你如何写复杂业务代码。作者:张建飞,进行了重新整理。
155 0
|
12月前
|
消息中间件 JavaScript 小程序
领域驱动设计(DDD)的几种典型架构介绍
领域驱动设计(DDD)的几种典型架构介绍
|
12月前
|
存储 JSON 自然语言处理
「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构和CQRS的整合(下)
「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构和CQRS的整合
|
12月前
|
存储 搜索推荐 NoSQL
「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构和CQRS的整合(上)
「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构和CQRS的整合
|
12月前
|
定位技术 uml
「业务架构」TOGAF建模之业务架构:组织分解图(组织映射)
「业务架构」TOGAF建模之业务架构:组织分解图(组织映射)
|
12月前
【领域驱动设计】架构和 DDD Kata:在线汽车经销商
【领域驱动设计】架构和 DDD Kata:在线汽车经销商
|
12月前
|
存储 搜索推荐 NoSQL
「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构,CQRS的整合架构
「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构,CQRS的整合架构
|
12月前
|
定位技术 uml
「业务架构」TOGAF建模:组织分解图(组织映射)
「业务架构」TOGAF建模:组织分解图(组织映射)
|
12月前
|
存储 XML 缓存
「首席架构看领域驱动设计」领域驱动的设计和开发最佳实践(下)
「首席架构看领域驱动设计」领域驱动的设计和开发最佳实践