作者:醉仙
随着优酷业务的快速发展,随之而来的是模块数量的爆发式增长,基本每年以大量新增模块的速度增加,到目前为止优酷已经有非常庞大的模块依赖。模块之间通信往往是相互直接依赖调用,以至于耦合十分严重且混乱,每一个库依赖都是一颗“树”,甚至于一张“网”,对日常研发造成很多困扰:
插件化落地结果
iOS模块插件化已经全面在优酷落地,沉淀出各业务线的轻量工程,大量的业务及架构插件,后续可根据不同业务需求,自由组装插件工程。以下是目前插件化工程落地后的一些收益:
-
直接收益
-
业务插件工程编译效率提升 显著,本地编译时间大幅降低,相关全部开发已使用起来;
-
通过插件组装生成业务插件工程,插件工程支持模拟器编译调试,并支持热重载;
-
模块工程和整包工程均使用插件作为依赖,彻底解决模块工程和整包工程依赖模块版本不一致情况,并支持依赖模块版本自动更新;
-
业务插件工程依赖库数量大幅减少,且pod直接复用缓存,大幅提升pod成功率及速度,磁盘占用大幅减少;
-
-
间接收益
-
可提供运行内存、app启动、功耗等插件卡口,常态化保持良好的用户体验;
-
所有插件支持自由组装,通过配置中心,提供快速孵化极速版、国际版、Apple Watch、Apple TV等App的能力;
-
依赖减少,swift断点调试时的module树快速生成,断点效率提升;
-
提速打包效率,建立插件工程构建平台,测试同学使用平台动态配置生成插件组合安装包即可进行测试。
-