领域驱动设计与微服务边界探索
1. 通用语言与上下文边界
在不同的上下文中,术语可能有不同的含义。我们只需在特定领域模型的有界上下文中就术语的通用含义(通用语言)达成一致。通过观察术语含义发生变化的边界,我们可以识别上下文的边界。
并非所有在讨论领域模型时想到的术语都会成为相应通用语言的一部分。有界上下文中对该上下文主要目的至关重要的概念才是团队通用语言的一部分,其他的则应排除在外。这些核心概念可以从为有界上下文创建的待办事项集合中发现。例如,使用精心编写的工作故事中的关键名词来识别与通用语言相关的词汇术语是一种很好的技术。
2. 上下文映射
2.1 上下文映射的概念
在领域驱动设计中,我们不会用单一的领域模型来描述复杂系统,而是设计多个独立的模型在系统中共存。这些子领域通常通过发布的接口描述进行通信。在更大的系统中,各个领域的表示以及它们之间的协作方式被称为上下文映射。识别和描述这些协作的行为就是上下文映射。
2.2 协作交互类型
- 共享内核 :当两个领域在很大程度上独立开发,偶然在彼此的部分领域上重叠时就会出现共享内核。双方可能会就这个共享内核进行协作,其中可能包括共享代码、数据模型以及领域描述。然而,共享内核是一个有问题的模式,尤其是在微服务架构中。它需要两个独立团队高度协调,并且在后续的修改中也需要持续协调。如果必须在微服务生态系统中使用共享内核,建议指定一个团队作为主要所有者/管理者,其他团队作为贡献者。
- 上下游关系 :上游作为某种能力的提供者,下游是该能力的消费者。由
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



