OC底层面试题-组件化的创建(上)

本文介绍了iOS开发中的组件化概念,强调了组件化的优点,如降低耦合、提高复用性。接着详细阐述了适用于组件化的项目特征,并提出了组件化的评估指标和原则。文章深入探讨了本地组件化和Cocoapods组件化的实现步骤,包括创建主工程、组件、私有仓库以及配置和使用。最后,文章简要提及了组件化通信和相关拓展知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本来想着写界面优化的,但是因为前段时间项目比较忙,就一直没弄!加上最近项目里也在整理组件化的东西,所以也就决定写篇关于组件化的文章。

组件化

谈到组件化,首先想到的是解耦模块化。其实组件化就是将模块化抽离分层,并制定模块间通讯方式,从而实现解耦的一种方式,主要运用在团队开发

组件化的有点

组件化主要有一下有点

  • 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.模块的单元测试经常由于其他模块的修改而失败

组件化方案

组件化的指标

一个项目经过组件化后如何来评判项目组件化是否彻底或者说是否优秀࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值