程式碼慣例
cert-manager,如同大多數的 Go 專案,幾乎將所有的樣式選擇都委派給 gofmt
,並在其之上使用 goimports
來組織 import。廣泛來說,如果您設定您的編輯器在儲存檔案時執行 goimports
,您的程式碼在樣式上將會是正確的。
cert-manager 通常也遵循 Kubernetes 的 程式碼規範 和 Google 的 Go 程式碼審閱意見。
組織 Import
Import 應該組織成 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")
一旦手動完成標準函式庫、外部和內部 import 的分割,未來當執行 goimports
時,將會自動強制執行。
英式拼寫 vs. 美式拼寫
為了保持一致性,cert-manager 在 https://cert-manager.dev.org.tw 的文件以及 cert-manager 程式碼庫中使用 en-US 拼寫。一個全面的 en-GB → en-US 單字替換列表可以在 Ubuntu 的 WordSubstitution
頁面上找到。