DDD(领域驱动设计)是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题。而在微服务微应用蔚然成风的今天,他们共同体现的分而治之的思想,使得领域建模显得尤为重要。
一、简析DDD
-
DDD溯源
在早期开发中,领域模型就是数据库设计,但是传统的开发存在一定问题。
(1)Service层很重,所有逻辑处理基本都放在service层。
(2)POJO作为 Service 层非常重要的一个实体,因为不同场景的需求做不同的变化和组合,造成 POJO 的几种不同模型(失血、贫血、充血)。
(3)随着业务变得复杂以后,包括数据结构的变化,各个模块就需要进行修改,原本清晰的系统经过不断的演化变得复杂、冗余、耦合度高,后果非常严重。 -
DDD介绍
(1)什么是领域(Domain)?
任何一个系统都会属于某个特定的领域,同一个领域的系统都具有相同的核心业务,因为他们要解决的问题的本质是类似的。因此,我们可以推断出,一个领域本质上可以理解为一个问题域,只要是同一个领域,那问题域就相同。所以,只要我们确定了系统所属的领域,那这个系统的核心业务,即要解决的关键问题、问题的范围边界就基本确定了。
(2)什么是驱动(Driven)?
驱动是领域驱动领域模型设计,是领域模型驱动代码的实现。
(3)什么是设计(Design)?
DDD中的设计主要指领域模型的设