Meta 公司代码改进实践
软件工程
2025-04-24 v2
摘要
快速软件交付的焦点不可避免地导致技术债务的积累,这反过来影响质量并减缓未来开发。然而,历史悠久且持续进行快速交付的公司确实存在。我们的主要目标是发现此类公司是如何保持其代码库可维护的。方法:我们通过与工程师合作进行代码质量分析,并分析丰富的源代码变更历史,以揭示用于代码持续改进的各种实践。此外,我们复制了若干前行行业案例研究,探讨代码重构的影响。结果:Meta 的代码改进范围从完全由工程师自主发起的自发性改进,到定期留出时间并通过更好工程(Better Engineering,BE)工作的游戏化参与,到旨在重构代码库复杂部分或删除积累的死代码的大型明确性计划。超过 14% 的变更是明确用于代码改进的,开发人员会获得“徽章”以认可工作类型和工作量。我们针对决定要改进哪些代码库部分的调查工作,发展了用于指导此决策的指标。我们的重构活动影响分析显示,质量、速度以及代码复杂度都得到了显著提升。总体而言,这种持续改进是一种有效的方法,可实现快速发布的软件开发,同时保持高质量。
引用
@article{arxiv.2504.12517,
title = {Code Improvement Practices at Meta},
author = {Audris Mockus and Peter C Rigby and Rui Abreu and Anatoly Akkerman and Yogesh Bhootada and Payal Bhuptani and Gurnit Ghardhora and Lan Hoang Dao and Chris Hawley and Renzhi He and Sagar Krishnamoorthy and Sergei Krauze and Jianmin Li and Anton Lunov and Dragos Martac and Francois Morin and Neil Mitchell and Venus Montes and Maher Saba and Matt Steiner and Andrea Valori and Shanchao Wang and Nachiappan Nagappan},
journal= {arXiv preprint arXiv:2504.12517},
year = {2025}
}