Google 发布了一份正式的 Rust 编程语言风格指南,以确保其多样化的项目生态系统(包括 Android、ChromeOS 和 Fuchsia)中的一致性。虽然许多 Rust 格式规范由 `rustfmt` 等工具自动处理,但本指南超出了美学范畴,涵盖了 API 设计、代码组织和实现模式。其主要目标是优先考虑长期可维护性和可读性,确保代码在整个生命周期内对广泛的工程师保持可访问性。
该指南最显著的特征之一是其对“大规模变更”(LSCs)的关注。由于 Google 管理着庞大的代码库,该指南鼓励采用“易于重构”的模式——这意味着它们可以被自动化工具轻松操作。例如,指南建议在 Chromium 的某些库类型中使用“扁平文件布局”,即源文件存放在单个目录中,而不是嵌套结构中。这种方法旨在提高并行编译和构建缓存的性能,即使它偏离了开源项目中常见的常规 Cargo 目录结构。
该指南还提供了关于所有权和 API 设计的特定指令,例如优先选择借用而非深度复制,并在公共 API 中使用 `enum` 类型而非 `bool` 类型。它区分了必须严格遵守 API 设计规则以实现广泛可重用性的“库代码”,以及重点转向简洁性和直接性的“应用代码”。此外,指南还解决了技术细节,例如在公共枚举上使用 `#[non_exhaustive]` 以便在不破坏下游消费者的情况下进行未来更新,以及优先选择模式匹配而非“检查后解包”逻辑,以提高代码的安全性和清晰度。
虽然指南的大部分内容与更广泛的 Rust 生态系统保持一致,但其对模块组织和命名规范的特定要求是为 Google 内部基础设施量身定制的。通过将这些规则编纂成文,Google 旨在减少“自行车道辩论”(bikeshedding)——即关于风格的细微分歧——并提供清晰的质量标准,帮助工程师专注于解决复杂问题,而不是在代码审查期间争论格式选择。该指南作为基础性文件,确保 Rust 在 Google 基础设施中扩展时,对所有贡献者来说保持可预测且可维护。
