什么是领域驱动设计DDD

一、理解

DDD即Domain drive design,领域驱动设计,是一种以模型为核心的软件设计方式。相较于分层结构以组件的能力不同进行划分,领域驱动设计更倾向于以业务进行划分,将软件划分为明确设置边界的问题领域。

二、核心

模型的设计依赖于客观实际,依赖于业务。

比如商品,“商品”这个概念在现实生活中就存在,包含商品名称、商品价格、商品类型等,所以我们在设计数据模型的时候,也依赖于这个,也就是“客观生活中是什么样的”。那么我们这个简单的商品模型就有了:

@Data
public class Commodity {
          
   
    private String commodityName;
    private String commodityPrice;
    private String commodityType;
}

三、优势

最大的优势在于与业务更好的交互。

那么,假若数据模型与客观实际出入太大,那么这个“调整”的过程就会很麻烦,而且也极易出错。

反之,如果数据模型也是从客观实际出发呢?

那么业务、产品、开发、测试,四者对于模型的理解就是基本互通的了,出入很小,那么“调整”的过程也会很小,甚至没有。

对于快速迭代的产品来说,数据模型是否抽象的够好,是否能符合DDD的设计理念,就显得非常重要了。

经验分享 程序员 微信小程序 职场和发展