iOS 模块化、组件化方案探索(利用cocoapods 、git 创建私有仓库)
2024-08-21 11:28:41
来自bang's blog
http://blog.cnbang.net/tech/3080/
模块化
简单来说,模块化就是将一个程序按照其功能做拆分,分成相互独立的模块,以便于每个模块只包含与其功能相关的内容。比如登录功能可以是一个模块,搜索功能可以是一个模块.
组件化
通俗点就是:组件化就是基于可重用的目的,将一个大的软件系统按照分离关注点的形式,拆分成多个独立的组件,减少耦合。
模块化 vs 组件化
模块化?组件化?到底是什么鬼?有啥区别.
有这种感觉才是对的,模块化和组件化本质思想是一样的,都是”大化小”,两者的目的都是为了重用和解耦,只是叫法不一样.如果非要说区别,那么可以认为组件化粒度更小。按我理解组件是指比较小的功能块,这些组件不需要多少组件间通信,没什么依赖,也就不需要做什么其他处理,面向对象就能搞定。而较大粒度的业务功能,我们习惯称为”模块”。为了方便表述,平时模块和组件代表同一个意思。
大型项目模块化管理
随着iOS APP越来越复杂,功能越来越多,对于iOS项目的工程化要求也越来越高了,对于复杂的APP一般都需要对项目进行模块化管理。
模块化有几个方式:
1. 目录结构管理:这是最原始的方式,仅仅通过目录结构实现代码层次的清晰化。但本质上并没有解决代码之间的依赖混乱的情况,模块化划分也非常不清晰。
2. 子工程:通过子工程可以实现代码依赖管理和模块化,但是需要引入复杂的设置,不利于管理。
3. 静态库:将依赖代码打包成为静态库.a,不过由于不能看到源码,调试不方便。
自从有了CocoaPods,可以使用它来管理私有库,从而实现了代码模块化管理。例如下图所示:
最新文章
- SQLSERVER JDBC 存储过程调用偶尔很慢的原因之一【sp_sproc_columns】
- java 28 - 2 设计模式之 模版设计模式
- offsetParent详解
- Java中堆和栈的区别(转)
- Linux/Unix shell 自动发送AWR report
- 类似QQ的应用毗邻(Pilin)即时聊天源码
- 一张图解析如何让img垂直居中对齐
- 绘图工具graphviz学习使用
- Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql
- BIEE在creating domain步骤停止的解决的方法
- Day3-递归函数、高阶函数、匿名函数
- 启动Tomcat提示:指定的服务未安装
- 华为OJ之自动售货系统
- jquery系列教程7-自定义jquery插件全解:对象函数、全局函数、选择器
- JSP的内置对象以及作用域。
- C语言第八次作业
- python——虚拟环境之pipenv的安装及使用(windows10,64位)
- slf4j的java包冲突问题
- Springboot监控之二:Spring Boot Admin对Springboot服务进行监控
- linux命令学习之:systemctl