AI 中文社区(简称 AI 中文社),是国内学习交流AI人工智能技术的中文社区网站,这里可获取及贡献任何AI人工智能技术,我们追求自由、简洁、纯粹、分享的多元化人工智能社区。

原 FaceBook 公司 Meta 将移动端消息基础设施从 C 迁移到 Rust

随笔 · 肉饼饭 1天前发布 · 浏览14次 · 点赞0次 · 收藏0次

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、构建系统所需精力都更少了。这些案例共同表明:开发者体验——而不仅是裸性能——正在成为选择编程语言和工具链的决定性因素。

作者 | Matt Foster 译者 | 明知山

原 FaceBook 公司 Meta 将移动端消息基础设施从 C 迁移到 Rust - 随笔 - 话题 - AI 中文社区
点赞(0) 收藏(0)
0条评论
现在评论,你将成小区里最靓的仔^_^
评论

游客
登录后再评论
  • 一字一句需斟酌,一言一语显风范。
  • 评论消耗5积分,点赞、收藏消耗3积分。