风格指南

Go 风格

https://ggdocs.cn/styleguide/go

概述 | 指南 | 决策 | 最佳实践

关于

Go 风格指南及相关文档旨在整理出编写可读且符合 Go 语言习惯的最佳方法。遵循风格指南并非强制性的,并且这些文档永远无法穷尽所有情况。我们的目的是尽量减少编写可读 Go 代码时的猜测,以便 Go 语言的新手可以避免常见的错误。风格指南还有助于统一在 Google 内部进行 Go 代码审查时提供的风格指导。

文档 链接 主要受众 规范性 权威性
风格指南 https://ggdocs.cn/styleguide/go/guide 所有人
风格决策 https://ggdocs.cn/styleguide/go/decisions 可读性导师
最佳实践 https://ggdocs.cn/styleguide/go/best-practices 任何感兴趣的人

文档

  1. 风格指南 概述了 Google 的 Go 语言风格的基础。该文档具有权威性,是“风格决策”和“最佳实践”中的建议的基础。

  2. 风格决策 是一个更详细的文档,总结了关于特定风格点的决策,并在适当的情况下讨论了决策背后的原因。

    这些决策可能会根据新数据、新的语言特性、新的库或新兴模式而偶尔发生变化,但不期望 Google 的单个 Go 程序员及时了解此文档。

  3. 最佳实践 记录了一些随着时间的推移而形成的模式,这些模式可以解决常见问题,具有良好的可读性,并且能够应对代码维护需求。

    这些最佳实践并非权威性的,但鼓励 Google 的 Go 程序员尽可能使用它们,以保持代码库的统一性和一致性。

这些文档旨在

这些文档旨在

Go 程序员之间以及一个团队的代码库与另一个团队的代码库之间总是存在差异。但是,尽可能使我们的代码库保持一致符合 Google 和 Alphabet 的最大利益。(有关一致性的更多信息,请参见指南。)为此,您可以随意进行风格改进,但无需吹毛求疵地纠正您发现的每一个违反风格指南的行为。特别是,这些文档可能会随着时间的推移而发生变化,但这并不是导致现有代码库额外变动的原因;使用最新的最佳实践编写新代码并在一段时间内解决附近的问题就足够了。

重要的是要认识到风格问题本质上是个人化的,并且总是存在固有的权衡。这些文档中的大部分指导都是主观的,但就像gofmt一样,它们提供的一致性具有重要价值。因此,如果没有经过适当的讨论,风格建议将不会被更改,即使 Google 的 Go 程序员可能不同意,也鼓励他们遵循风格指南。

定义

以下词语在整个风格文档中使用,定义如下

其他参考资料

本指南假定读者熟悉 Effective Go,因为它为整个 Go 社区的 Go 代码提供了通用的基准。

以下是一些额外的资源,供那些希望自学 Go 风格的人以及希望在其审查中提供更多可链接上下文的审查者使用。Go 可读性流程的参与者不必熟悉这些资源,但它们可能会作为可读性审查中的上下文出现。

外部参考资料

相关的 Testing-on-the-Toilet 文章

其他外部文章