限界上下文(Bounded Context)
在销售和支持两个领域中,Customer和Product分别代表了不同含义
Bounded Context 是领域驱动设计(Domain-Driven Design,简称 DDD)中的一个核心概念。领域驱动设计是一种软件设计方法,它强调基于业务领域(即业务的应用场景)的复杂性来构建软件。
在 DDD 中,Bounded Context 指的是一个具有明确边界的概念上的区分,它定义了一个特定的领域模型和涉及该模型的术语的范围。在这个边界内,所有的术语和概念有明确的定义和作用。在不同的 Bounded Context 之间,相同的词汇可能会有不同的含义,或者相同的概念可能通过不同的模型表达。
Bounded Context 有助于解决大型系统中的复杂性问题,通过将系统划分成小的,专注于特定业务功能的模块,并确保模块之间的交互尽可能简单清晰。每个 Bounded Context 可以有自己的数据库模式、代码库、开发团队等。
举个例子,假设有一个电商平台,可能有以下 Bounded Context:
- 订单管理(Order Management):管理顾客的订单流程,包括订单创建、支付流程、退货等。
- 库存管理(Inventory Management):管理产品库存量,跟踪库存变化,预测库存需求。
- 客户关系管理(Customer Relationship Management):管理客户信息,交易历史,偏好等,进行客户服务和沟通。
每个场景中,”客户”、”产品”、”订单” 等概念的含义和用途可能略有不同。在 Bounded Context 的设计中,这些差异被明确地界定。
关于 Bounded Context 的更多信息,你可以参考:
- Eric Evans 的《领域驱动设计》(Domain-Driven Design: Tackling Complexity in the Heart of Software)
- Martin Fowler 的 Bounded Context 简介: https://martinfowler.com/bliki/BoundedContext.html