最新:在TwitterMastodon获取项目更新。

编码规范

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 页面上可以找到英式英语到美式英语的全面词语替换列表。