前端开发的领域驱动设计
https://www.yuque.com/mayiprototeam/gfyt69/oq14ia
https://juejin.cn/post/6844903618680881165
- 建立前端领域模型
- 分离出领域层
- 理解后端领域模型
隔离复杂度的思路
软件复杂度产生的根源,来自复杂的依赖关系
- 随着功能的增加,系统复杂度也在不断增加,那么整个项目就会到达一个不可维护的状态
- 首先需要从项目结构层面,去对复杂度做物理上的隔离,确保业务模块相关的代码都能在独立的文件夹中
- 要妥善地处理业务模块之间的依赖关系。不仅需要在业务上区分硬依赖和软依赖。同时呢,在技术的实现层面也要能做到模块的松耦合
大型项目的架构设计时,一定要时刻有管理系统复杂度的意识
- 不能只考虑功能是否实现,而不管复杂度
- 这样做,终究会导致系统越来越复杂,不断降低开发和维护的效率,甚至导致项目失败
按领域组织文件夹结构
源代码要按照业务功能组织在一起,不要从技术角度进行了拆分代码
- 对于文件夹的组织,我们一定要按领域去组织源代码
- 一个与领域相关的文件夹,自身包含了自己需要的所有技术模块,这样无论是理解代码实现,还是开发时切换导航,都会非常方便
- 要达到的目标其实是:删除一个功能,就像删除一个文件夹那么简单。这才是真正松耦合的系统
- 尽量扁平化地组织所有代码,而不是再去按小的功能去增加嵌套的文件夹;否则,如果你再回头去看代码,或者新加入的成员去看,会增加理解成本。
博客的领域组织
每一个文件夹就相当于一个小型的项目,包含了与自己相关的所有源代码,就便于理解和开发
每个领域文件夹都有自己的 compoents、routing、actions、store 等
- 把业务模块的文件夹都放在了一个名为 features 的文件夹下
- 和其它一些全局配置的代码区分开来