Skip to content

背景

问题起源

我对DDD的研究始于2021年,那时经过多年的java开发工作,在工作中出现了很多开发的问题。虽不影响使用,但是代码却显得异常凌乱。比如以传统的mvc架构为例:

  1. 业务代码散落各处:业务代码散落在各个架构层,可以在controller层中处理,也会在service中处理,然后还会在dao层处理。甚至于在前端处理。

  2. 数据对象使用混乱:各层的数据对象随便使用,怎么方便怎么来,最离普的就是Map走天下,所有的东西都用Map来封装。

  3. 组件复用困难:我们会碰到一种情况就是,一种业务组件在别的地方使用了,在当前的位置居然要重写一遍,因为怕搞乱了别人写的业务逻辑。

  4. 代码维护困难:Serivce层的代码随着业务的增加,写的代码也越来越多,难以阅读,也不容易维护。

寻找解决方案

面对这样的问题,我就在思考,到底应该怎么办。难道就没有一个好的办法来处理这样的问题么。

直到有一天,我把这个问题抛给了我师傅。我师傅说,你可以研究一下DDD 领域驱动设计。这一点拨,让我在后续对相关资料的查询和研究后,豁然开朗。这不正是我想要的架构么。

于是为了让自己有这样一个架构的框架,开始了nebula-framework的研发。同时也开源出来,希望能帮助到更多的人。

学习建议

但是,要好好研究这个DDD, 不是这么容易的。首先,你需要对概念进行一个深入的理解。其次,你要对概念的理解上,对它进行一个落地的实现。这两点,每一个点都不是那么容易的。

推荐阅读

建议你先阅读一下DDD的一些资料,比如:

  1. Domain-Driven Design-领域驱动设计 软件核心复杂性应对之道

DDD书籍封面

  1. 实现领域驱动设计