百度App及矩阵App的研发方式,使用以百度App为主线研发的多矩阵App复用方式,主线版本双周迭代,矩阵App按需从主线拉取应的版本源码、资源及组件,基于该基础之上进行功能的裁剪及差异化的功能定制。
2020年度,百度App极速版,客户端单次同步百度App的时间为月级别,主要的时间在解决代码冲突问题,编译问题和功能测试。
主要的原因有两个
1. 在于搜索业务历史悠久,线上运行了10年的搜索端技术架构历史包袱较重,搜索业务主仓库与业务的耦合比较大,约有
80%的搜索相关的业务需要改动搜索主仓库。
2. 矩阵App中的功能裁剪和主线没有同步,组件的定义及标准化层面不统一,主线App和矩阵App并行研发迭代,功能的裁剪
及定制汲及到的相关逻辑处理于易变的状态。
主要问题思考:
1. 功能复用方式的思考:和传统的App中引入SDK复用的方式不同,单一App研发,矩阵App功能复用,算是一种全新的研发
模式,相当是于是App一体化复用输出。
2. 矩阵App不仅要复用,且还需要裁剪,及差异化的定制。如何低成本的裁剪和定制也是架构设计需要考虑的点。
3. 矩阵App功能裁剪,一些功能在矩阵App中不存在,搜索结果页需要针对不同的客户端进行适配,避免一些功能因在矩阵
App中补裁剪,而导致无法调起。
主要方案思路
1. 实现变体发布模型:相当于是一个App,可以以不同的的变体进行发布,基于该模型,可以实现矩阵App快速的裁剪功能
2. 业务分级:确定搜索业务的最小集,最小集不可裁剪,其它功能可裁剪。
3. 模块划分:使用业务组件化的方式进行模块的功能拆分,这样矩阵App可以快速的裁剪,和只开部分组件的源码实现定制。
4. 结果页和落地页中的功能拆分,事件标准化,统一管理,以插件的方式注册及裁剪。
5. 技术实现:实现容器化,插件化管理机制,实现功能模块动态调用能力,实现端云通路。
6. 防劣化:组件的拆分标准化,可裁剪的流程标准化,组件+负责人明确。
收益:
1. 矩阵App单次同步主线App的耗时,下降了70+%,从月级到周级。
2. 搜索侧并行代码提交效率提升:搜索主仓库单版本代码提交等待时间优化了10+小时,所有需求代码提交等待时长控制在5
个小时内。
3. 矩阵App同步主线App时,可立即裁剪的组件40+,超过90%。
1. 变体发布的思路及技术实现
2. 业务组件化的优势
3. 面向接口编程与功能裁剪及定制的关系
4. 端云一体化输出