Project Icon

bounded-context-canvas

可视化微服务边界的领域驱动设计协作工具

Bounded Context Canvas是一个用于设计和记录限界上下文的协作工具。它通过结构化框架引导团队考虑设计的关键要素,包括命名、职责、接口和依赖关系等。该工具有助于清晰定义微服务边界,促进领域驱动设计实践。Canvas涵盖战略分类、领域角色和通信方式等方面,为微服务架构设计提供全面指导。

限界上下文画布

限界上下文画布是一种协作工具,用于设计和记录单个限界上下文的设计。

如果你不确定什么是限界上下文,可以查看Eric Evans的DDD参考Martin Fowler的文章

画布通过要求你考虑并选择其设计的关键元素,从命名到职责,再到公共接口和依赖关系,引导你完成限界上下文的设计过程。

替代文本

下载空白画布模板

摘要

如何使用

要快速开始使用限界上下文画布,请按照章节定义中呈现的顺序完成画布 首先填写画布的名称和描述,用一两句话阐明其存在的理由和主要职责。然后你可以按任意顺序填写画布的其他部分。你可以从外向内设计,从入站通信开始;或从内向外设计,从业务规则和领域语言开始。 你可能没有足够的信息来完成画布的某些部分。在这种情况下,你需要使用其他建模技术来找到所需的信息。

替代格式

上面展示的默认限界上下文画布格式并不是唯一的格式,以下是其他格式。也欢迎你尝试新的和创新的格式。

  • 用例泳道:这种风格将通信部分组织成泳道,以以下格式显示交互发生的顺序:输入消息 -> 做出决策 -> 输出消息

板块定义

以下是画布各个板块的简要说明。

名称

命名很难。写下你的上下文名称并在团队中达成一致,将为你设计上下文提供框架。

目的

用几句话描述上下文的原因和内容,使用商业语言。这里不涉及技术细节。 写下目的迫使你清晰地表达模糊的想法,并确保团队中的每个人都达成共识。 从商业角度描述目的,你也可以列出这个限界上下文为谁提供价值的关键角色。

战略分类

这个上下文对你组织的成功有多重要?:

  • 核心领域:关键战略举措
  • 支持领域:必要但不是差异化因素
  • 通用领域:许多领域中常见的能力

这个上下文在你的商业模式中扮演什么角色:

  • 收入生成器:人们直接为此付费
  • 参与度创造者:用户喜欢但不为此付费
  • 合规执行者:保护你的业务声誉和存续

这个概念的演进程度如何(参见Wardley Maps):

  • 创生期:新的未探索领域
  • 定制构建:公司正在构建自己的版本
  • 产品:存在具有差异化的现成版本
  • 商品:存在高度标准化的版本

关于创生期、定制构建、产品和商品的详细描述,请参见Wardley Maps演进定义。 填写画布的这一部分时,可参考核心领域图表

领域角色

如何描述这个限界上下文的行为?它是接收大量数据并将其转化为洞见的分析上下文吗?还是执行工作流的执行上下文?识别上下文扮演的不同角色可以帮助避免职责耦合。

查看Alberto Brandolini的限界上下文原型和Rebecca Wirfs-Brock的对象角色原型以深入分析这个领域。模型特征工作表包含社区生成的角色示例(模型特征是领域角色的前身)。

入站通信

入站通信代表由其他协作者发起的协作。

消息

消息是一个协作者发送给另一个协作者的信息。限界上下文之间可以发生三种类型的对话:执行某事的请求(命令)、请求某些信息(查询)或通知某事已发生(事件)。

这里的"消息"一词是泛指,不局限于任何特定实现。不一定要求使用消息总线或异步工作流。例如,命令可以简单地通过HTTP POST方法提交HTML表单数据。

协作者

协作者是向此上下文发送消息的其他系统或子系统。它们可以是其他限界上下文、前端(网页或移动端)或其他内容。

如果限界上下文拥有用户界面(例如微前端),那么协作者类型就是直接用户交互。

协作者类型

关系类型

两个限界上下文之间的关系类型表明模型和团队如何相互影响。参见上下文映射了解关系类型。

组织为泳道

协作者可以被组织成水平泳道,显示他们发送的消息。

协作者示例

出站通信

出站通信代表由该上下文发起的、与其他协作者互动的协作。适用与入站通信相同的消息类型和表示法。

通用语言

这个上下文中存在哪些关键领域术语,它们的含义是什么?

业务决策

这个上下文中的关键业务规则和政策是什么?

假设

你在设计决策时永远不可能对领域中的一切都了如指掌。大多数设计都是基于假设进行的,强烈建议将这些假设明确化。可以在限界上下文设计画布的这个部分做到这一点。

验证指标

领域驱动设计是一种基于持续学习的迭代建模和设计方法。指标可以帮助你收集有价值的学习输入(想想构建-测量-学习循环)。考虑你和你的团队可以定义哪些指标,以了解所选择的限界上下文边界是否合适。

你可以从以下来源收集这些指标:

  • 你的CI / CD环境
  • 像JIRA这样的工具
  • 从你的线上系统

开放问题

如果在进行研讨会时有一些问题房间里没人能回答,你可以将它们输入画布的这个部分。这样可以确保不遗漏任何开放问题,同时也可以直观地了解团队对给定限界上下文设计的确定程度。大量问题表明存在高度不确定性。

示例

以下是一个填写完整的限界上下文画布。 BCExample

工具

以下是一些可以帮助你使用限界上下文画布的工具。

HTML版本

一个画布的HTML版本,你可以在浏览器中编辑,并与你的代码一起在源代码控制中进行版本管理。由Nelson da Costa贡献。

Miro版本

一个免费的MiroHQ模板,用于限界上下文画布。

目前在Miroverse上的模板版本是v4。同时,你可以从本仓库下载Miro板的备份。

draw.io版本

一个draw.io画布模板,包含限界上下文画布作为模板。

Excalidraw版本

一个Excalidraw画布模板,包含限界上下文画布作为模板。

设计技巧

通过在画布上展示限界上下文设计的重要元素,你可以更容易地质疑和改进设计。以下是一些帮助你质疑和改进设计的技巧。

欢迎通过创建拉取请求分享你的技巧。

通用技巧

  1. 尝试将画布上的某些内容移到另一个上下文中。这会如何影响设计?

接口设计技巧

限界上下文的公共接口是它与系统其他部分的契约。契约对协作者有重大影响,且难以更改,因此良好的设计至关重要。以下是一些帮助你评判限界上下文接口设计的技巧。

  1. 消息的命名是否与彼此以及上下文的描述保持一致?
  2. 每种消息类型是否最优(例如,命令是否应该是事件)?
  3. 接口是否过大(过多独特的消息类型)?
  4. 上下文是否暴露了过多内部细节?
  5. 是否有任何消息看起来应该属于其他地方?

额外资源

翻译

所有资源均有法语版葡萄牙语版可供使用。

贡献者

感谢所有现有和未来的贡献者,以及以下为限界上下文画布做出贡献的个人:

贡献和反馈

您可以免费使用有界上下文画布。此外,我们欢迎您提供反馈和想法,以改进画布或创建新版本。

欢迎您也向我们发送包含您的示例或新翻译的拉取请求。

CC BY 4.0

本作品采用知识共享署名 4.0 国际许可协议进行许可。

CC BY 4.0

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号