新消息:在TwitterMastodon取得專案更新

程式碼慣例

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 頁面上找到。