知识卡片

子域与限界上下文的两阶段分解关系:问题域与解决方案域

普通读书笔记卡

内容

子域和限界上下文分别对应DDD里两个不同的维度:问题域主要从业务视角出发,完成从领域到子域的分解;解决方案域主要从技术实现角度,通过划分限界上下文、采用DDD战术设计完成微服务的拆分和落地。两者的映射关系在大多数情况下是一对一或一对多——可以把业务领域的分解理解为两个阶段:第一阶段是从领域到子域的粗粒度分解(依据业务流程边界或功能集合,把庞大的领域先分解成大小合适的子域,再归类为核心/通用/支撑子域),这一步是必要的,因为领域太大不便于直接用事件风暴构建领域模型;第二阶段是从子域到限界上下文的技术实现级分解,在这些划分好的子域内部开展事件风暴、划分限界上下文、完成领域建模。如果领域本身已经足够小,也可以跳过第一阶段的子域分解,直接开展事件风暴划分限界上下文。书中给出一个精炼的总结:”限界上下文本质上就是子域,只不过它会更多地考虑领域对象的语义边界和技术实现细节”——两者不是彼此独立的两套体系,而是同一个业务复杂度分解过程在不同精细程度上的两个阶段性产物,子域偏向业务粗分类,限界上下文偏向可以直接指导微服务落地的精细划分。

参考来源

- 位置:第6章《限界上下文:定义领域边界的利器》"6.5 限界上下文与子域的关系"(源文件:_epub-src/OEBPS/Text/chapter3-2-5.xhtml) - 结论依据:原文说明"'子域'和'限界上下文'在大多数情况下是一对一或者一对多的映射关系……我们不妨将业务领域的分解拆分为两个阶段:从领域到子域的粗粒度的分解和从子域到限界上下文的技术实现级的分解……限界上下文本质上就是子域,只不过它会更多地考虑领域对象的语义边界和技术实现细节",直接支撑本卡片结论。 - 原始内容:"子域"和"限界上下文"在大多数情况下是一对一或者一对多的映射关系……限界上下文本质上就是子域,只不过它会更多地考虑领域对象的语义边界和技术实现细节。限界上下文的划分体现的是一种更为详细的设计过程。