附录-工程专题:(旧)有关 Hover 项目模块化的思考

这是一个旧的 issue,被我从 Hover 项目 issue 中移植过来,留档保存。
2018 年由 ChenYuanfu 提出

在最近的一周内,我们能看到一个比较明显的趋势, Hover 的项目,正在变的越来越模块化(在我心中是褒义),也越来越碎片化(许许多多功能独立的模块)。 我描述下,我心中感受到的好的一面,和带来的潜在的风险.

好处

将一个个模块独立拆分出来之后,我最关注的是

  • 拆分的独立的模块,能够迫使每个人都思考每个独立模块的职责和责任是什么,从而实现出来更内聚,更解耦的功能;
  • 拆分独立的模块,给每个模块独立的测试带来可能性和便利,很多情况下不再需要在整个项目中 release;
  • 拆分独立的模块,在梳理清楚各种依赖之后,能够避免很多无法引用到本来应该引用到的模块,带来的不必要的逻辑,代码和设计;

    风险

  • 我们规范化了 Hover 项目中的流程,但是却没有规范化一个一个小项目的流程,现在 Album 等项目的流程并不是很 clean, 我们需要尽快梳理一下流程,来应对这个确实;
  • 将开发模式,变成了很多个小模块的开发,这样在提交和维护代码时,需要多个模块进行提交,code review 时,需要多个模块进行 review 和 merge;
  • 需要多做些工作,如配置 jenkins 等等; 所以,为了结合好这样的好处,规避风险,我们需要尽快摸索出一种流程,来解决这样的问题。 我想先让大家尝试下 repo, 看看是不是顺手。