介绍
今年是QQ空间18周年,空间客户端团队也在18岁生日前夕完成了架构升级。到目前为止,不规则的多团队协作开发导致代码逐渐恶化,带来很大风险。因此,QQ空间面临着历史性的巨额债务,不能摧毁,也不能建立。在这里我想分享一下我在重建过程中遇到的问题和解决方案。
目录
1 空间重构项目背景
2 重构的理由
3 宇宙的结构是如何崩溃的?
4 建筑的生命力
5 如何实施渐进式重构
6 如何确保架构的可扩展性和可重用性7 如何降低复杂性并保持随时间的控制
8 如何防止变质
9 性能优化
10 项目改造成果总结
11 展望
18年前,QQ空间上线后迅速走红网络,成为很多人的青春记忆。 18年后的今天,QQ空间的生命力依然强劲,是很多年轻用户首选的社交平台。
作为最古老的互联网产品之一,QQ空间的代码也比较老旧,代码执行环境复杂,维护成本较高,整个架构急需升级。
01
空间重建项目背景
作为基于平台的入口点,Space 负责为我们的许多姐妹企业带来流量,并且许多团队合作开发Space 代码。再加上多年来积累的功能迭代,空间业务变得异常复杂。业务复杂导致架构复杂,架构复杂意味着维护成本增加。这些年来,航天业务频繁交接,多个团队接手。当它交给我们团队的时候,空间的代码已经无法形容了。
在这里,我们简单介绍一下Space的业务架构。目前Space的主要入口是QQ,我们称之为合体版。同时,独立版Space App仍在维护中。
(是的,独立于空间的应用程序仍然拥有忠实的用户)。可以看到这个空间有一个独立于Mobile Q的架构。集成版本和独立版本共享许多技术和业务组件。
02
为什么要重构?
太空是一个非常广泛的行业,仅组合版本就有超过150 万行代码。同时,这个空间的代码执行环境也非常复杂,涉及五个进程和两个插件。由于频繁的交接和多个团队的协同开发,Space 的代码在几乎所有代码质量指标上都逐渐降级到Q 的底部。
宇宙规范成为了著名的原始森林。你可以进来,但你不能出来。代码降级会在不更改一行代码的情况下为每个版本添加30 多个历史错误。
面对如此巨大的历史债务,这个空间已经到了举步维艰、不破不立的地步,重建刻不容缓。因此,太空团队趁机升级了太空UI,开始了太空史上最大规模的重建。
03
宇宙的结构是如何逐渐恶化的?
如果我们跳出棋局,从今天的角度回顾它,我们会发现空间的密码就是一个很好的例子,一个美丽建筑逐渐退化的完美例子。
3.1 可扩展性差,没有独立代码的地方集成版本和独立版本重用了大量代码,包括跨组件、页面和应用程序的重用。但由于初始架构的可扩展性较低,异化的业务代码没有立足之地,开始蚕食底层技术组件。底层组件代码开始受到污染。
航天标准历史悠久且复杂,使得航天企业很难快速维护和管理新的需求。最大的三个模块就是压垮航天业务的三座大山:流量、相册、出版。此次架构升级完成了Spaces底层架构的更新,彻底重写了最复杂的Feed流场景,同时还对相册模块进行了一半的重建。当其余模块重构时,所有空间祖先代码都被重写。展望未来,我们还可以帮助更快地实现新的需求,为拥有18年历史的QQ空间注入新的活力,使其重回正轨。欢迎大家转发分享哦~
作者: 尹树娣
来源:微信公众号:腾讯云开发者
来源:https://mp.weixin.qq.com/s/c_t3wd-kvzZOHizfagtopQ
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/640273.html