• 通用语言:链接开发者和业务专家

    本书假定你已熟悉DDD的相关知识,所以相关术语介绍会尽可能简洁明了。第一个是通用语言,在绝大多数项目中,开发者和业务相关人员对领域的描述都不同,这就导致开发者对问题存在误解的情况,进而影响开发进度。通用语言就是为了解决这个问题而出现。例如:存在一个销售系统,开发人员对最小销售单位产品进行建模,且建立了Product类,而领域专家对其有两种称呼:产品和包裹。这个时候就需要统一称谓,避免歧义。

    • 限界上下文:不同系统的分界线

    另一个重要的概念是限界上下文。不同系统代码之间盘根交错通常是一个系统难以维护的主要原因。严格清晰地定义系统边界,建立限界上下文能有效避免此类情况的出现。
    image.png
    image.png
    👆如果有两个系统Sales和Support都和Product有关联,那么建议将其分开表示。

    • 核心域:聚焦系统最重要的部分

    DDD认为任何系统的主要部分就是其业务逻辑,也就是说软件致力于要解决的问题便是核心域。在Sales系统中便是其众多的业务逻辑,但并不是全部都是,如系统中依赖外部组件的业务就不是。因为一些业务逻辑并不是当前系统的核心问题,这些业务逻辑可以很容易通过第三方实现,而不用从零开始。
    通用语言、限界上下文和核心域是DDD中最重要的概念,他们是DDD的战略要素。而其它的概念,如:实体、值对象、资源库则构成了战术要素。