一、组件化架构的产生
随着移动互联网的不断发展,很多程序代码量和业务越来越多,现有的单一式架构已经不能满足公司发展的需求,很多项目都面临着无法继续迭代或迭代成本很高,而不得不重构的问题。
我在以前的工作中许多工作任务就是重构项目。单一式架构的问题主要体现在:
1.业务模块间划分不清晰,模块之间耦合度很大,非常难维护。
2.所有模块代码都编写在一个项目中,测试某个模块或功能,需要编译运行整个项目。
3.多个项目使用同一功能模块,集成过程困难。
二、项目组件化
项目组件化就是将项目中的各个模块按照基础组件、功能组件、业务组件等划分成一个个单独的模块,以使的各个模块间实现低耦合,可以单独开发、测试、组合运行。
三、项目组件化好处
1.业务划分更佳清晰,新人接手更佳容易,可以按组件分配开发任务。
2.项目可维护性更强,提高开发效率。
3.更好排查问题,某个组件出现问题,直接对组件进行处理。
4.开发测试过程中,可以只编译自己那部分代码,不需要编译整个项目代码。
5.方便集成,项目需要哪个模块直接通过CocoaPods集成即可。
四、私有索引库
私有索引库:分为本地私有索引库和远程私有索引库,他们是相互对应的。
私有索引库的作用是保存 .podSpec 文件,当使用 pod search -- 时,pod 首先会在本地的索引库中进行搜索,当本地的索引库中不存在时,会到远程索引库中进行搜索。
1.本地私有索引库
安装 CocoaPods 的电脑都会在工作目录中自动生成索引库文件夹。它对应CocoaPods 的远程索引库。在mac电脑下的目录为:/Users/kylin/.cocoapods/repos/master/Specs 。(注:kylin->对应自己的用户目录名)
创建私有索引库可以选择 Github 的私有代码仓库(需要购买)、码云、coding码市等。
2.远程私有索引库
本文以coding为例。
a.创建远程私有索引库,复制仓库地址。
b.复制远程索引库地址。
c.打开终端,将远程私有库关联到本地。
命令:cd /Users/kylin/.cocoapods/repos
pod repo add [项目名] [复制的远程索引仓库地址]
d.在Finder 中多了一个项目文件夹(项目名),这就是我们用来存放组件的 .podSpec 文件的。
五、安装使用私有索引库
修改 Podfile 文件。
1.添加资源仓库地址:source 'https://git.coding.net/[]' 注:[] 是自己 coding 仓库地址。
2.添加库索引: pod 'AFNetworking'
3.保持 Podfile 文件。pod install
4.自定义私有库出现在 Pod 文件夹中,大事告成。
备注:如果有不对的地方,望大家多多指正。