一、模块化
概述:模块化开发,是每个开发者都熟悉的。就是将常用的UI、网络请求、数据库操作、第三方库的使用等公共部分抽离封装成基础模块,或者将大的业务上拆分为多个小的业务模块,这些业务模块又依赖于公共基础模块的开发方式。
更宏观上,又会将这些不同的模块组合为一个整体,打包成一个完成的项目
好处:
- 复用
首先,基础模块,可为业务模块所复用;
其次,子业务模块,可为父业务模块,甚至不同的项目所复用。 - 解耦
降低模块间的耦合,避免出现一处代码修改,牵一发而动全身的尴尬局面。 - 协同开发
项目越来越大,团队人数越来越多,模块化开发可在尽量解耦的情况下,使不同的开发人员专注于自己负责的业务,同步开发,显著提供开发效率。
缺点:
- 项目代码量越来越大,每次的编译速度越来越慢,哪怕几句代码的修改,都需要等待若干分钟等待编译运行查看执行结果,极大的降低了开发效率;
- 业务模块越来越多,不可避免地产生越来越多且复杂的耦合,哪怕一次小的功能更新,也需要对修改代码耦合的模块进行充分测试;
- 团队人数越来越多,却要求开发人员了解与之业务相关的每一个业务模块,防止出现此开发人员修改代码导致其他模块出现bug的情况,这个要求对于开发人员显然是不友好的;
二、组件化
概述:组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发
好处:
- 将APP业务模块分开开发和维护,有利于提高效率
- 一个业务分为一个组件,每个组件可以单独开发以实现并发开发,进一步提高效率
- 每个组件充分解耦
- 每个组件可以单独测试
- 架构灵活
深入学习:
https://blog.csdn.net/guiying712/article/details/55213884
三、比较
组件化是基于重用,减少耦合;模块化是根据功能模块的不同而拆分的。其实组件化就是将一个app拆分成多个模块,每一个模块都是一个组件,开发过程中可以让这些组件相互依赖,也可以单独调试,最终打包时需要合并统一成一个apk。
网友评论