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

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

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


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


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

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


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


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


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


image.png

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


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


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


相关文章
|
6月前
|
消息中间件 Cloud Native Java
【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合
【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合
|
5月前
|
存储 边缘计算 Cloud Native
“论模型驱动架构设计方法及其应用”写作框架,软考高级,系统架构设计师
模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述,这些模型独立于实现技术,以标准化的方式储存,利用模型转换策略来驱动包括分析、设计和实现等在内的整个软件开发过程。
321 3
|
16天前
|
消息中间件 监控 NoSQL
驱动系统架构
【10月更文挑战第29天】
21 2
|
1月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
6月前
|
存储 分布式计算 分布式数据库
【专栏】云计算与分布式系统架构在数字化时代的关键作用。云计算,凭借弹性、可扩展性和高可用性,提供便捷的计算环境
【4月更文挑战第27天】本文探讨了云计算与分布式系统架构在数字化时代的关键作用。云计算,凭借弹性、可扩展性和高可用性,提供便捷的计算环境;分布式系统架构则通过多计算机协同工作,实现任务并行和容错。两者相互依存,共同推动企业数字化转型、科技创新、公共服务升级及数字经济发展。虚拟化、分布式存储和计算、网络技术是其核心技术。未来,深化研究与应用这些技术将促进数字化时代的持续进步。
182 4
|
3月前
|
消息中间件 Java RocketMQ
微服务架构师的福音:深度解析Spring Cloud RocketMQ,打造高可靠消息驱动系统的不二之选!
【8月更文挑战第29天】Spring Cloud RocketMQ结合了Spring Cloud生态与RocketMQ消息中间件的优势,简化了RocketMQ在微服务中的集成,使开发者能更专注业务逻辑。通过配置依赖和连接信息,可轻松搭建消息生产和消费流程,支持消息过滤、转换及分布式事务等功能,确保微服务间解耦的同时,提升了系统的稳定性和效率。掌握其应用,有助于构建复杂分布式系统。
63 0
|
3月前
|
机器学习/深度学习 并行计算 算法
深度学习驱动的声音生成:FunAudioLLM的创新架构
【8月更文第28天】随着深度学习技术的发展,声音合成的质量得到了显著提升。本文将介绍 FunAudioLLM —— 一种基于深度学习的声音生成框架,旨在创造高质量、自然流畅的声音内容。我们将探讨 FunAudioLLM 的核心技术、训练流程及其实现细节,并提供一些示例代码。
62 0
|
3月前
|
缓存 前端开发 项目管理
业务驱动的应用架构设计
业务驱动的应用架构设计
46 1
|
4月前
|
消息中间件 设计模式 Java
Java中的消息驱动架构设计
Java中的消息驱动架构设计
|
4月前
|
消息中间件 监控 Java
使用Kafka实现分布式事件驱动架构
使用Kafka实现分布式事件驱动架构
下一篇
无影云桌面