课程 ID: 16924
描述:
案例背景:
移动端的插件化技术从12年兴起到现在,经历了辉煌到没落。但在讲究研发效能的如今,我们发现这项技术在编译构建、架构优化、研发协同以及降本增效等方面都能带来可观的收益。
在经过快手多维度的优化后,我们解决了插件化架构固有的技术难题,将其覆盖到超过50%的业务场景,成为支撑这个亿级DAU产品的核心技术之一。
解决思路:
1. 快手的研发痛点
a. 协同问题:超大型单仓工程,业务闭环度低,独立开发、独立测试、独立发布能力差;
b. 架构问题:难以量化ROI,架构优化推进难;
c. 研发问题:巨量业务,编译慢、调试卡
2. 插件化技术的壁垒
a. 技术难度大,学习、理解、接入成本高
b. 性能损耗大,业务负向高
c. 投产成本高,CDN等费用巨大
快手针对上述问题:
1. 基于单仓的插件化技术,抽象剥离各独立业务,接入成本低,学习难度小;
2. 与快手架构演进路线绑定,通过无损编译技术,让达到组件化架构的业务能直接转化为插件化架构,进而升级到容器化架构;
3. 自研插件秒级编译技术,用插件化方案降低编译耗时;
4. 包括ClassLoader Index、NamescpaceHook、NoReflection等方案,解决插件化性能问题,与原生执行只有2%差异;
5. 利用AI、端智能等多项策略,降低50% CDN成本
等等等
成果:
快手插件化目前已经覆盖超过50%的业务场景,取得了优异的“降本增效”成果。
包括包体积降低50%、编译速度提升90%、发布周期缩小60%、业务闭环度提升30%等等。
移动端技术领域没有过时的技术,也没有万能的银弹。快手根据自身业务特点,选择合适的架构方案、开发方式,另辟蹊径,找到了适合自己的插件化架构模式。我们希望把这个案例分享给行业同僚,共同提升开发者的幸福感。