
Meta 正在用 Rust 逐步重写其移动端消息基础设施,替换掉工程师们口中“越来越难维护、越改越头疼”的老旧 C 代码。在 Meta Tech 播客第 76 期 中,Meta 消息基础设施团队详细介绍了他们的迁移动机:内存安全、开发者幸福感和长期可维护性是三大核心驱动力。
这次重写的核心库被编译进 Facebook、Messenger、Instagram、Instagram Lite、VR 头显和可穿戴设备的构建中,这些应用每日覆盖数十亿用户。
开发者们在回忆起老旧的 C 运行时代码时,脑海中浮现出来的关键词是“几百行起步的函数”和“手动记账式内存管理”:变量在文件顶部申请,在一千行之后才释放,哪怕是小规模的重构都会让人胆战心惊。
“意大利面代码只会生出更多意大利面。”
Meta 软件工程师 Elaine 这样吐槽,指出“破窗效应”让烂代码越来越烂。内存管理失误偶尔溜进生产环境,进而升级为难以调试的 on-call 事故。
Rust 的编译期所有权检查能一次性消灭整类错误,但团队把“日常幸福感”摆在与安全同等的高度:更干净的语义、rustfmt 的确定性格式化、rust-analyzer 的实时反馈,都让迭代更轻松、反馈更迅速。性能依然重要,但核心指标已转向开发者速度与信心。
Rust 的学习曲线相对陡峭,承担重写任务的大多数工程师此前几乎没有使用 Rust 的经验——Elaine 笑称自己最初只认得“那个螃蟹 logo”,后来竟连做梦都在想 move
关键字。为了加快上手,团队采用一对一走读代码、耐心细致的代码审查等方式。
Meta 的开放代码文化也帮了大忙:把问题抛给专门的 Rust 工作组,很快就能得到专家级的解答。这种文化将原本陡峭的学习曲线变成了一场集体冒险,而非单打独斗的难关。
工具链的改进也延伸到了线上运维。如今工程师可以在 C/Rust 混合代码里设置断点,看调试器无缝跳入 Rust 帧,移动端的崩溃日志也能完整符号化——几个月前还无法做到这样。
随着更愉悦的工作流、更快的反馈以及更安全的重构逐步落地,工程师们表示修改代码时更有底气了。工程师 Buping 表示,Rust 的编译期检查让他能够更轻松地定位并修复问题。
Rust 工作组已经吸引了全公司希望将 Rust 应用于移动端的工程师。尽管长期路线图尚未公开,但内部日益高涨的兴趣已经说明了一切。
Meta 团队认为,目前对迁移所节省的时间进行量化还为时尚早,但走在前面的公司已给出了积极的信号。Cloudflare 报告称开发速度更快、代码更易理解;谷歌从 C++ 迁移到 Rust 后也发现,用 Rust 写代码、做 Code Review、构建系统所需精力都更少了。这些案例共同表明:开发者体验——而不仅是裸性能——正在成为选择编程语言和工具链的决定性因素。
原文链接:
评论