DDD战略设计相关核心概念的理解
01 前言 本文想再讨论一下关于领域、业务、业务模型、解决方案、BC、领域模型、微服务这些概念的含义和关系。 初衷是我发现现在DDD领域建模以及解决方案落地过程中,常常对这些概念理解不清楚或者有歧义,导致我们不知道如何运用这些概念来落地我们的软件。 先通过一个图来说明一下这些概念之间的关系,如下图所示 02 领域、业务、业务模型 · 领域,即问题域、问题空间,领域是一种边界、范围。 所以,一个领域代表了一个问题域的边界,也可以理解为是一个业务的边界。 · 领域边界越大,业务范围就越大,反之则相反。 通常我们大家交流都比较喜欢用业务这一词,比如这块业务,那块业务,业务的边界,我是一个业务开发人员(区分于我是一个中间件开发人员)。而领域一词,相对比较抽象,不是那么容易懂。 · 领域既然是一个边界,所以可以划分领域的大小。 即领域划分,划分出来的子领域简称子域,每个子域对应一个小的问题域和和小的业务;当然,不同的子域的重要性也是不同的,所以才有了核心子域、支撑子域的说法,这点显而易见。 · 每个业务都有一个对应的业务模型 (注意这个业务模型不是领域模型,而是一个业务概念的模型,领域模型下面会提到),这个业务模型设计的时候,完全不需要考虑任何软件设计的思想,比如对象的抽象、继承、存储、性能,等。 我们是从业务本身出发,分析业务边界范围内的各种业务概念,以及业务概念之间的关系