前言

网上关于组件化的理论很多而且已经比较成熟,理论方面请参看这篇集合文章iOS组件化。

一、组件化的初衷。

  • 有利于代码模块的封装和复用。
  • 对不同的业务模块可以进行物理隔离(通过git私有 仓库权限控制),进一步提升代码的稳定性和安全性。
  • 项目整体结构层次分明,便于后期维护。
  • 便于项目功能细分,颗粒划分更细,分配工作更合理,项目时间节点更容易掌控,便于进行敏捷开发。
  • 便于进行单元测试。

二、组件化开发过程。

1、要组件化必须进行解耦。

我们谈解耦,并不是完全解除代码之间的耦合,通过学习和实践这是不合理也不可能的。我们解耦的目的其实是为了解除代码模块相互间的依赖,或者说我们的目的就是让代码模块变得单向依赖,像一个插头一样可以自由拔插。
(合理 不合理的 图)

2、模块化与解耦理论模块化与解耦

因为个人精力有限,此篇主要是记录组件化架构的实践,故这里只以功能模块划分组件,模块化可以根据自身项目自己封装对应模块。

3、组件化架构设计