Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《解构领域驱动设计》架构映射篇

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

作者头像
张逸
发布于 2023-03-23 07:46:55
发布于 2023-03-23 07:46:55
5140
举报
文章被收录于专栏:斑斓斑斓
架构映射对应解空间的战略设计层次。

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

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

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

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

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

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

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

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

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

说明:许多朋友在询问《解构领域驱动设计》何时可以出版购买?这里统一回复:目前出版社正在编辑排版,书的封面也在设计中,预计在春节前后可以买到本书。谢谢各位的支持与抬爱!


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 逸言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
领域驱动设计对依赖的控制
我在《解构领域驱动设计》一书中分析了软件复杂度的成因,一曰规模,一曰结构,还有一个则是变化的影响。规模与结构存在一定的矛盾关系:解决规模复杂度的有效方法为“分而治之”,一旦系统被分解为多个更为细小的软件元素,结构复杂度就会增加。结构与变化之间存在互相影响的关系:如果结构控制不合理,变化带来的影响就会更强,使得系统更加复杂。
张逸
2023/03/23
4980
领域驱动设计对依赖的控制
领域驱动设计统一过程交付物
我还在书中的附录D给出了领域驱动设计统一过程的交付物。不过,随着我在多个项目中实践领域驱动设计统一过程,我发现定义在交付物的一些关键元素需要更好的表现方式,也需要形成一个统一的标准。为了帮助各位《解构领域驱动设计》的读者在项目中更好地运用领域驱动设计统一过程,并输出高质量的统一而标准的交付物,特别作此文以补充。
张逸
2023/03/23
5840
领域驱动设计统一过程交付物
菱形对称架构的表达力
在14年读《实现领域驱动设计》接触到六边形架构,感觉很受启发,每个限界上下文就对应一个六边形架构:
张逸
2023/03/23
7410
菱形对称架构的表达力
DDD实战之五:战略设计之上下文映射和系统分层架构
关于“限界上下文识别”和“限界上下文关系映射”,我认为这是 DDD 战略设计中最重要的部分,甚至可以说:这两个工作将决定了微服务切分是否有效的关键因素!
张逸
2023/03/23
1.6K0
DDD实战之五:战略设计之上下文映射和系统分层架构
阐释限界上下文
有人阅读我的文章,并指出文章错误,作为作者的我,应该表示真诚的感谢。文章写来没人读,不就是抛媚眼给瞎子看吗?有人指出错误,不仅能帮我勘误,还能增加知识,岂非一举两得。
张逸
2023/03/23
6100
阐释限界上下文
DDD在大众点评交易系统演进中的应用
本文主要涉及境外出行、商场团购和内容商业化等三类交易业务场景。在大众点评App里,在境外城市站有美食、购物、商场、景点、门票、当地玩乐等频道入口,可以购买境外出行交易产品,在境内的逛街/商场频道可以找到商场团购优惠以及商场团购代金券。
美团技术团队
2024/05/15
2430
DDD在大众点评交易系统演进中的应用
《解构领域驱动设计》思维导图
《解构领域驱动设计》全书的脉络是按照领域驱动设计统一过程的脉络开展叙述的,核心内容就是构成领域驱动设计统一过程的三个阶段:
张逸
2023/03/23
6810
《解构领域驱动设计》思维导图
领域驱动设计随感录
有时候在技术上确定限界上下文的边界反而是一件容易的事,不过就是按照DDD的设计思想依势而为罢了。虽然有by experience的因素,然则好歹是架构师可以掌控的。
张逸
2023/03/23
2950
领域驱动设计随感录
活动回顾 | 领域驱动设计实战工作坊之金融科技专场
期待已久的【领域驱动设计实战工作坊——金融科技专场】终于在上周末落下了帷幕。一起来瞧瞧过去的这两天,我们完成了怎样的一次头脑风暴和思想碰撞!
ThoughtWorks
2018/07/23
6010
活动回顾  |  领域驱动设计实战工作坊之金融科技专场
《解构领域驱动设计》全局分析篇
价值需求既是目标系统的目标,也是对目标系统问题空间的界定和约束,它指导着业务需求分析。
张逸
2023/03/23
6090
《解构领域驱动设计》全局分析篇
菱形对称架构
在实施领域驱动设计的过程中,限界上下文(Bounded Context)扮演了关键角色:它既是维护领域模型完整性与一致性的重要边界,又是系统架构的重要组成部分。随着社区对限界上下文的重视,越来越多的人开始尝试将更多的架构实践与限界上下文融合在一起,创造出符合领域驱动设计的架构模式。
张逸
2020/03/26
1.9K0
菱形对称架构
领域驱动架构风格
当限界上下文根据不同的业务场景定义为不同的通信边界时,即演变为面向服务架构模式(或者认为是单体架构与微服务架构组成的混合架构);
张逸
2023/03/23
5360
领域驱动架构风格
万字长文助你上手软件领域驱动设计 DDD
作者:faryrong,腾讯 CSIG 后台开发工程师 最近看了一本书《解构-领域驱动设计》,书中提出了领域驱动设计统一过程(DDDRUP),它指明了实践 DDD 的具体步骤,并很好地串联了各种概念、模式和思想。因此,我对书本内容做了梳理、简化,融入自己的理解,并结合之前阅读的书籍以及实践经验,最终形成这篇文章。希望可以帮助大伙理顺 DDD 的各种概念、模式和思想,降低上手 DDD 的门槛。 1.背景 领域驱动设计(DDD)由 Eric Evans 提出,并一经《领域驱动设计:软件核心复杂性应对之道》的发布
腾讯技术工程官方号
2022/03/29
2.1K0
P8架构师都要懂的微服务架构深度解析:微服务构建,领域驱动设计
微服务构建本质上是软件构建过程中长期演进积累的一系列理念、架构原则、工具和最佳实践。
愿天堂没有BUG
2022/10/28
4180
P8架构师都要懂的微服务架构深度解析:微服务构建,领域驱动设计
DDD的基础设施到底在哪里
Eric对基础设施层(Infrastructure Layer)的定义为:“为上面各层提供通用的技术能力:为应用层传递消息,为领域层提供持久化机制,为用户界面层绘制屏幕组件,等等。基础设施层还能够通过架构框架来支持4个层次间的交互模式。”
张逸
2023/03/23
1.6K0
DDD的基础设施到底在哪里
领域驱动设计中的架构要素
多数时候,领域驱动设计的分层架构并不能清晰表达各模块之间的依赖关系,以及这些模块在分层架构中所处的位置。因为我倾向于将Uncle Bob的Clean Architecture与DDD的分层架构整合起来,如下图所示:
张逸
2018/10/10
3.6K0
领域驱动设计中的架构要素
识别限界上下文
有感于Eric Evans DDD中并没有提出与限界上下文相对应的架构模式,我在整洁架构和六边形架构的基础上提出了菱形对称架构,通过“内外分离、南北对称”的架构模式更好地保证限界上下文的自治性,从而促进架构的演进能力。
张逸
2023/03/23
5980
识别限界上下文
《解构领域驱动设计》融合篇
在战略层次,需在领域驱动架构风格的约束和指导下考虑限界上下文之间的协作,思考并决策限界上下文的通信边界,思考从单体架构向微服务架构的演进,同时,因为进程间通信引起的诸多影响,需评估分布式通信、事务以及受技术因素驱动的命令查询职责分离模式是否对领域模型造成了影响。
张逸
2023/03/23
3520
《解构领域驱动设计》融合篇
领域驱动设计模式的收益与挑战
《软件学报》在2021年第32卷第9期刊登了一篇论文:《领域驱动设计模式的收益与挑战:系统综述》[1]。这篇论文是学术界在这一领域开山之作。
码农戏码
2021/11/18
1.3K0
领域驱动设计模式的收益与挑战
限界上下文的菱形对称架构
我在GitChat上最新开通了一个Chat,主题为:限界上下文的菱形对称架构。为有利于搜索,更名为:领域驱动设计的菱形对称架构,但主要针对的是领域驱动设计的核心模式:限界上下文(Bounded Context)。
张逸
2020/03/04
7520
相关推荐
领域驱动设计对依赖的控制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档