组件化起因
我接手的项目业务复杂,各个业务线耦合产品各种运营需求,其中还包括基础业务功能模块,第三方库,各种分类,工具类等之间的耦合,重点是这是次要,更重要的是这个产品有十几个马甲包,将来还要做更多。面对这样的情况,如果不进行产品组件化,产品内部和产品群将高度耦合,臃肿不堪,迭代和维护成本更高。
组件化方案
基础组件库:
对项目进行基础工具类进行组件库的抽离,基础组件库放一些最基础的工具类,实质就是不会依赖业务,不会和业务牵扯的文件。
简单列举:
- 金额格式化、手机号/身份证/邮箱的有效校验
- 各种分类
Category
:NSDate
,NSString
,Color
等 - 各种宏定义
- 空处理,字典数组排序,字典数组转化等
功能组件库
功能组件库主要是产品所以依赖的库针对业务再次封装的功能库。
简单列举:
- 网络请求:封装的请求中心,请求的状态码处理,网络状态处理等
- 分享,推送,统计
- 通信录获取,设备分析,定位
- 数据缓存,图片处理,加解密
视图基础组件
视图基础组件主要是多处使用且具有独立的功能视图组件。
简单列举:
- UIKitFactory : 针对UIKit基础组件根据业务进行二次封装的组件库。
- 分享视图。
- 日期选择器
- UIKit 框架 各个基础视图的分类
- 各种状态的缺省页
- 各种上拉和下拉的动画组件库
- 各种AlertView和Toast组件库
- 各种样式不同的产品列表独立单元格和产品详情组件
- 首次启动预览页,启动加载页,闪屏组件,轮播组件,文字轮播等
业务组件库
登录组件、实名组件、消息组件、、各条产品线组件等。
- 信息认证组件库:身份证信息认证,人脸识别,运营商认证,芝麻信用,紧急联系人,通信录备份,收入流水等。
- 注册/登陆组件。
- 签到中心组件。
- 积分商城组件。
- 消息中心组件。
- 借款组件。
- 还款组件。
- 完善个人信息
中间件(组件通讯):
各个业务组件拆分出来后,组件之间的通讯、传参、回调就要考虑了,此时就需要一个组件通讯的工具类来处理。
网友评论