核心思想:分而治之,各个击破!
限界上下文是一个显式边界,领域模型便存在于边界之内。在边界内,通用语言中的所有术语和词组都有特定的含义,而模型需要准确地反映通用语言。
其实,从本质上来看,限界上下文是一个领域。
至于,DDD为什么是划分出限界上下文,而不是使用子域的子域来代替?
因为,限界上下文是一个比领域更加内聚的边界,限界上下文内的模型具有高度统一的业务属性,而领域,则是由不同业务属性组成,但这些业务属性都是为了一个共同目标。限界上下文,被包含在领域之中,领域具有一个或多个限界上下文。
举个例子,电商领域,包含了支付限界上下文、商品限界上下文、订单限界上下文、营销限界上下文、物流限界上下文,而支付限界上下文,只包含了与支付相关的内容。
在微服务盛行的当下,限界上下文是划分微服务的理论依据。
注意的是,限界上下文并不等同于微服务。一个限制上下文只能包含在一个微服务之中,但是一个微服务却能包含多个限界上下文。
DDD的标准建议是,一个微服务只包含一个限界上下文。
但实际情况,好多团队在开发的过程是,往往偏离了DDD的建