⚫ React Hooks 精进 12 - 项目结构:按领域组织文件夹结构


在实际开发中,关键在于:每增加一个新的功能,整个应用程序的复杂度不应该明显上升,这样才能保证应用程序始终可扩展,可维护。

软件复杂度的根源:复杂的依赖关系

按领域组织文件夹结构

通常在开发中会从技术角度对文件夹进行拆分,而不是按照业务功能组织在一起,这样会导致无法直观的知道一个功能的相关代码在哪些文件夹,还有开发一个功能时需要频繁切换源代码目录。

我们可以从领域角度出发组织源代码,自身就包含需要的所有技术模块。

并且需要尽量扁平化地组织所有代码,而不要按小功能去增加嵌套的文件夹。

处理模块间的依赖:模块间的交互

把依赖从技术层面提升到业务层面。

  • 硬依赖:功能 A 地实现必须基于功能 B
  • 软依赖:功能 B 扩展了功能 A

开发需要达到的目标是:删除一个功能像删除一个文件夹那么简单,这才是真正的松耦合的系统。

所以需要做的就是让模块之间的交互不在通过硬依赖。

扩展点机制:在任何可能产生单点复杂度的模块中,通过扩展点的方式允许其他模块为其增加功能。

http://github.com/rekit/js-plugin

利用类似事件的订阅和发布模型去建立这样一个机制。

思考题

如果使用了 Redux,如何在采用按领域组织时让业务功能的 Redux 在各自的文件夹下呢?


文章作者: 阿汪同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 阿汪同学 !
评论
  目录