參考資料:Go Wiki: Go Code Review Comments#
- ## Gofmt ✅ 2024-03-07
- goimports ✅ 2024-03-07
- ## 註解句子 ✅ 2024-03-07
- ## 上下文
- ## 複製 ✅ 2024-03-07
- ## 加密隨機數 ✅ 2024-03-07
- 使用
crypto/rand
代替math/rand
來生成金鑰 - 轉換為十六進制或 base64 進行打印
- 使用
- ## 宣告空切片 ✅ 2024-03-07
var t []string
為 nil,JSON 編碼為null
t:=[]string{}
非 nil 的零長度切片,JSON 編碼為[]
- ## 文件註解 ✅ 2024-03-07
- 頂層,匯出的名稱
- 非平凡的未匯出類型或函式宣告
- https://go.dev/doc/effective_go#commentary
- ## 不要恐慌
- https://go.dev/doc/effective_go#errors. ✅ 2024-03-07
- https://go.dev/doc/effective_go#recover. ✅ 2024-03-07
- 在套件內部進行恢復
- ## 錯誤字串 ✅ 2024-03-07
- 除了記錄日誌外,不應該大寫開頭
- ## 範例 ✅ 2024-03-07
- ## Goroutine 的生命週期 ✅ 2024-03-07
- 清楚表明它們何時 / 是否結束
- 保持簡單明瞭或進行文件化
- ## 處理錯誤 ✅ 2024-03-07
- https://go.dev/doc/effective_go#errors ✅ 2024-03-07
- ## 導入 ✅ 2024-03-07
- 避免重新命名
- 重新命名最局部或專案特定的導入
- 分組整理
- goimports ✅ 2024-03-07
- ## 空白導入 ✅ 2024-03-07
- 只在主程式或測試中使用
- ## 點導入 ✅ 2024-03-07
- 解決測試時的循環依賴問題
- 不在其他地方使用
- ## 內部錯誤 ✅ 2024-03-07
- 優先使用額外的有效值而不是內部錯誤
- ## 縮排錯誤流程 ✅ 2024-03-07
- 最小化正常程式碼的縮排
- ## 縮寫 ✅ 2024-03-07
- 使用一致的大小寫來表示縮寫
- ## 介面
- ## 行長度
- ## 混合大小寫 ✅ 2024-03-07
- https://go.dev/doc/effective_go#mixed-caps
- 縮寫 ✅ 2024-03-07
- ## 命名結果參數 ✅ 2024-03-07
- 不要僅僅為了避免聲明而命名結果參數
- ## 裸返回值 ✅ 2024-03-07
- 命名結果參數 ✅ 2024-03-07
- ## 封包註解 ✅ 2024-03-07
- ## 封包名稱 ✅ 2024-03-07
- ## 傳遞值 ✅ 2024-03-07
- 不要僅僅為了節省幾個字節而傳遞指標
- ## 接收者名稱 ✅ 2024-03-07
- 簡短但一致
- ## 接收者類型 ✅ 2024-03-07
- 最後,如果不確定,使用指標接收者
- ## 同步函式 ✅ 2024-03-07
- 優先使用同步函式而不是非同步的函式
- ## 有用的測試失敗
if got !=tt.wang{t.Errorf("Foo(%q) = %d; want %d", tt.in, got, tt.want) // or Fatalf, if test can't test anything more past this point
}- 表驅動測試.
- ## 變數名稱 ✅ 2024-03-07
- 簡短而不是冗長
- 基本規則:名稱越遠離其聲明,名稱越需要描述性
- Google Go 風格指南.