什么是领域驱动设计DDD
一、理解
DDD即Domain drive design,领域驱动设计,是一种以模型为核心的软件设计方式。相较于分层结构以组件的能力不同进行划分,领域驱动设计更倾向于以业务进行划分,将软件划分为明确设置边界的问题领域。
二、核心
模型的设计依赖于客观实际,依赖于业务。
比如商品,“商品”这个概念在现实生活中就存在,包含商品名称、商品价格、商品类型等,所以我们在设计数据模型的时候,也依赖于这个,也就是“客观生活中是什么样的”。那么我们这个简单的商品模型就有了:
@Data public class Commodity { private String commodityName; private String commodityPrice; private String commodityType; }
三、优势
最大的优势在于与业务更好的交互。
那么,假若数据模型与客观实际出入太大,那么这个“调整”的过程就会很麻烦,而且也极易出错。
反之,如果数据模型也是从客观实际出发呢?
那么业务、产品、开发、测试,四者对于模型的理解就是基本互通的了,出入很小,那么“调整”的过程也会很小,甚至没有。
对于快速迭代的产品来说,数据模型是否抽象的够好,是否能符合DDD的设计理念,就显得非常重要了。