编码规范
cert-manager,与大多数 Go 项目一样,几乎所有风格选择都委托给 gofmt
,并在其上使用 goimports
来组织导入。总的来说,如果您将编辑器设置为在保存文件时运行 goimports
,您的代码在风格上将是正确的。
cert-manager 通常也遵循 Kubernetes 编码规范 和 Google Go 代码审查注释。
组织导入
导入应该被组织成3个区块,每个区块之间用两个空行隔开
import ("stdlib""external""internal")
以下是一个来自 pkg/acme/accounts/client.go
的示例
import ("crypto/rsa""crypto/tls""net""net/http""time"acmeapi "golang.org/x/crypto/acme"acmecl "github.com/cert-manager/cert-manager/pkg/acme/client"acmeutil "github.com/cert-manager/cert-manager/pkg/acme/util"cmacme "github.com/cert-manager/cert-manager/pkg/apis/acme/v1""github.com/cert-manager/cert-manager/pkg/metrics""github.com/cert-manager/cert-manager/pkg/util")
一旦手动完成了标准库、外部和内部导入的划分,在未来执行 goimports
时,它将自动执行强制
英式英语 vs. 美式英语
为了保持一致性,cert-manager 在 https://cert-manager.k8s.ac.cn 的文档以及 cert-manager 代码库中都使用美式英语拼写。在 Ubuntu 的 WordSubstitution
页面上可以找到英式英语到美式英语的全面词语替换列表。