2012 年在谷歌格式化 100k 文件的故事

主要观点:2012 年,作者作为谷歌的初级工程师参与了对 Bazel BUILD 文件的格式化工作,Rob Pike 和 Russ Cox 提出重新格式化所有文件并使用预提交脚本强制实施,尽管过程中存在诸多考虑如如何处理注释、换行等,但最终计划获得批准并顺利实施,实施后虽有担忧但实际效果良好,带来了代码维护和大规模更改方面的显著变化。
关键信息

  • 2012 年作者在谷歌从事 Bazel 工作,收到神秘日历邀请与 Rob Pike 和 Russ Cox 合作。
  • 当时代码格式化工具不常见,BUILD 文件格式不一致,Russ 开发了 Buildifier 工具。
  • 实施过程中考虑了如何整合到代码编辑器、测试、提交大量文件等问题。
  • 实施后几乎无人抱怨,带来了代码维护和大规模更改方面的好处,如能替换 Bazel 构建语言等。
    重要细节
  • Buildifier 处理注释时将其附在语法树的附近节点,硬编码处理换行,保留部分现有行分割,总是格式化整个文件。
  • 实施过程中通过修改语法、编写风格指南、整合到代码编辑器、使用 Bazel Query 测试等方式确保效果。
  • 提交大量文件时使用工具拆分,冲突时 revert 冲突文件,通过“全局批准者”绕过代码批准。
  • 后续更新包括归功于 Nilton Volpato,解释不启用新格式化器的原因,提及文件数量变化及时间为 2012 年等,还有关于该文章的其他讨论平台如 HackerNews、Reddit、lobste.rs 等。
阅读 9
0 条评论