QQ空间业务是腾讯公司于2005年开发的一款具有个性空间、博客(blog)功能的QQ附属产品。它允许用户书写日志、写说说、上传图片、听音乐等,通过多种方式展现自己。用户可以根据自己的喜好设定空间的背景、小挂件等,使每个空间都独具特色。QQ空间还提供了多种互动功能,如好友留言板、个人中心、分享等,让用户可以与好友进行更深入的交流和互动。
1、发展历程
- 2005 年 6 月 6 日,Qzone1.0 内测版首次发布。
- 2024 年,在空间上线十八周年之际,其客户端团队完成了架构升级,此次升级是因为之前多团队协同开发导致代码劣化,维护成本高且架构复杂,如代码量庞大、运行环境涉及多个进程和插件等,重构势在必行。
2、业务形态
入口形式:目前主要的入口是在手 Q 里,称为结合版;同时独立版的空间 App 还在维护。
功能特点:具有博客(blog)的功能,用户可以书写日志、写说说、上传个人图片、听音乐、写心情等,通过多种方式展现自己。
3、业务模式
C2C 交易:QCC 是 QQ 空间虚拟物品的 C2C(Consumer to Consumer)交易,用户可以利用 Flash 创造空间内容,如开场动画、模块、皮肤等,经过腾讯认可后,通过电子商务平台与其他用户自由交易获取利益。
4、平台相关
QCC 平台:QCC 平台是与腾讯没有关联的第三方平台,比较值得信赖的有 QQC2C 等,这些平台有官网、旗下有 QCC 商城、代理产网店等,曾经的 QQ 屋也是基于 QCC 功能开发的新一代产品,但已于 2011 年 10 月左右停止运营。
5、技术架构
旧架构问题:扩展性低,异化代码无处安放,导致侵入底层技术组件;代码未隔离且缺乏编程范式,各团队代码耦合,风格迥异;维护成本暴增,形成恶性循环;Feeds 流架构设计虽初衷良好,但后续需求膨胀,导致基类代码与 Feed View 中的代码迅速膨胀,多个团队在同一批代码中开发,使代码质量和复杂度进一步劣化。
新架构改进:重新设计架构层级,业务层打薄专注中间层,避免代码跨层级污染;采用组合代替继承的方式,利用 RFW-Part 框架进行页面级 UI 容器架构设计,提高代码的隔离性和可维护性;提效前置,简化运行环境,包括去插件化、进程统一、工程结构优化和编译优化等,提升开发效率。
6、相关问题解答
问题一:QQ 空间为什么进行重构?
解答:由于 QQ 空间承担了为很多兄弟业务引流的责任,多年累积的功能迭代使其业务变得复杂,前期架构扩展性不高、代码未隔离且缺乏编程范式等问题导致代码逐渐劣化,维护成本升高,历史 bug 难以收敛,即使不修改代码每个版本也会新增较多 bug,因此必须进行重构。
问题二:QQ 空间的新架构如何保证扩展性与复用性?
解答:新架构重新设计了空间的架构层级,将业务层打薄,专注于中间层,底层技术组件基于 RFW 框架,更干净无业务侵入,可在其他 App 开箱即用;中间层负责桥接底层组件和手 Q 运行环境,并扩展实现一些空间相关但与具体场景无关的功能,其代码能在一周之内迁移到其他 App,RFWComponent 是一线开发沉淀出的组件库,由空间和小世界团队共同维护,所有组件经过线上业务验证,保证了易用性和扩展性,且核心组件可由上层注入代理实现,不依赖手 Q 运行环境,避免了业务侧逻辑入侵底层代码。