一个好的组件化实施应具有什么表现?
-
公用代码多APP使用,可一个地方修改多个地方更新(公用代码到处复制粘贴,然后修改公用代码后导致两个APP的公用代码实际已经变得不一样,无法维护)
-
组件创建、编辑、发布及各APP使用组件应简单易用且技术成熟无坑。
-
组件使用方法应跟iOS第三方开源代码库使用相同的包管理工具进行统一、无差别管理
-
对于第三方开源组件最正确的使用方法是不修改其源码,对于确有需要修改源码的情况下应再封装一个RD(公司名称前两个首字母)开头的组件依赖第三方,然后尽可能使用其他方式如runtime、继承、外部属性修改的方式进行
-
如确系必须修改源代码的第三方应自封装RD开头的组件供各APP使用
-
APP主题相关在组件化实施过程中需要涉及主题的各组件对外暴露主题变更颜色设置接口或通过指定方法从主APP实时获取颜色。注意:为什么要这样做?
-
各组件应尽量减少或不使用pch文件,避免各文件互相嵌套引用.h文件,降低修改一处需要重新编译所有引入对应.h文件的地方。提高编译速度。
-
组件应分为基础组件和业务组件,基础组件为功能组件,业务组件为APP的某一个业务模块。基础组件提供属性和协议等方式供业务组件使用,业务组件为上层,基础组件为下层,上层可以依赖下层,下层不能依赖上层。各业务组件之间为平级关系,平级之间不能互相依赖,平级之间通过路由进行解耦。
-
路由方案应简单易用、统一规范,不需要提前注册占用内存,可以runtime动态调用。
-
公用代码最好的状态是也要按功能拆分,比如公用库中有做定位功能的、地图功能的、分享功能的、埋点功能的,要按功能拆成每一个子组件,可以按需热插拔组件。
网友评论