05、深入DDD的核心:领域与限界上下文
上一章节中,我们主要讨论了DDD如何通过仓库、工厂、聚合这些工具,来保护以实体、值对象和领域服务为主体的领域模型的。通过仓库和工厂隔离了底层数据存储模型对领域模型的影响。而又通过聚合,隔离了业务对领域模型的影响。这样,领域就可以以一个相对独立的方式进行演进了。其实重点就是提出了一个聚合自治的思想。将一个大的问题划分成多个相对独立的聚合,减少各个聚合之间的依赖关系,从而使各个聚合能够以比较独立的方式进行演进。
然而,如果站在更大的业务系统,例如电商网站的角度,之前所讨论的各个场景就都显得有点过于细致了。通过聚合,确实能很好的帮助我们解决某一个具体的业务场景,但是却很难演化出一个完整的系统。所以之前几讲的内容,可以理解为是DDD的战术篇,即使用DDD来解决具体的问题。而这一讲,我们将进入战略层面,来讨论如何使用DDD来对一个业务系统进行整体的设计。
领域划分
DDD的核心是领域,那领域到底是什么呢?在百度百科中,对领域的解释是"学术思想或社会活动的范围"。这里可以看到,关于领域,最重要的一个关键词就是范围,范围也就是边界,这也是在DDD设计中不断强调各种边界的根本原因。领域的概念可大可小,但是根本目的