DDD 限界上下文
限界上下文是 DDD 中定义模型边界的核心概念,每个上下文内有自己的领域模型和语言。
#concept
#growing
#architecture
[!info] related notes
DDD 限界上下文
一句话定义
限界上下文(Bounded Context)是领域模型的有效边界,在边界内概念有唯一明确的含义,跨边界则可能同名异义。
为什么需要
- “用户”在订单上下文 = 买家,在权限上下文 = 系统账户
- 不限界会导致模型混乱、耦合爆炸
跨边界怎么协作
同一个业务 ID 可以在不同上下文中对应不同模型,不能因为都叫 User 就共用同一个万能实体。跨边界明确数据、事件与状态含义,必要时用 防腐层翻译。
边界内的 统一语言由业务协作与规则确定,不是根据数据库表、目录或编程语言自动生成。
与微服务的关系
限界上下文是模型和语言的边界,微服务是运行与部署边界。一个上下文可以位于模块化单体中,也可以由多个部署组件支撑;不能为了画出 1:1 对应关系而强行拆服务。