前言
本来想着写界面优化的,但是因为前段时间项目比较忙,就一直没弄!加上最近项目里也在整理组件化的东西,所以也就决定写篇关于组件化的文章。
组件化
谈到组件化,首先想到的是解耦
,模块化
。其实组件化就是将模块化抽离
,分层
,并制定模块间
的通讯
方式,从而实现解耦
的一种方式,主要运用在团队开发
组件化的有点
组件化主要有一下有点
- 1.
模块间解耦
- 2.
模块重用
- 3.
提高团队协作开发效率
- 4.
方便进行单元测试
当项目因为各种需求,越来越大时,如果此时的各个模块之间是互相调用
,即你中有我,我中有你
这种情况时,会造成高耦合
的情况。一旦我们需要对某一块代码进行修改
时,就会造成影响范围广
,功能多
的问题,导致项目难以维护
其问题主要体现在一下几个方面
- 1.修改某个功能时,同时需要修改其他模块的代码,因为在其他模块中有该模块的引用。可以理解为
高耦合导致代码修改困难
- 2.模块对外接口不明确,甚至暴露了本不该暴露的私有接口,修改时费时费力。可以理解为
接口不固定导致的接口混乱
- 3.高耦合代码产生的后果就是会影响团队其他成员的开发,
产生代码冲突
- 4.当模块需要重用到其他项目时,
难以单独抽离
- 5.模块间耦合的忌口导致接口和依赖关系混乱,
无法进行单元测试
所以为了解决以上问题,我们需要采用更规范的方式
来降低模块间的耦合度
,然后组件化就应运而生,组件化
也可以理解为模块化
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流群:130 595 548,不管你是小白还是大牛都欢迎入驻 ,让我们一起进步,共同发展!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)
组件化的适用说明
上面说了组件化的好处,但是因为组件化
也是需要
一定成本
的,需要花费时间设计接口
、分离代码
等,所以并不是所有
的项目都需要组件化
。如果你的项目有以下3个以上
特征就不需要组件化
:
- 1.
项目较小
,模块间交互简单,耦合少 - 2.项目
没有被多个外部模块引用
,只是一个单独的小模块 - 3.
模块不需要重用
,代码也很少被修改
- 4.团队
规模很小
- 5.
不需要编写单元测试
如果你的有以下3个以上
特征,说明你就必须要考虑进行组件化
了:
- 1.模块
逻辑复杂
,多个模块之间频繁互相引用
- 2.项目
规模逐渐变大
,修改代码
变的越来越困难
(这里可以理解为:修改一处代码,需要同时修改其他多个地方) - 3.团队
人数变多
,提交的代码
经常和其他成员冲突
- 4.项目
编译耗时较大
- 5.模块的
单元测试
经常由于其他模块
的修改而失败
组件化方案
组件化的指标
一个项目经过组件化后如何来评判项目组件化是否彻底或者说是否优秀