
go fmt
或 go vet
的驗證,網路上也蠻多工具可以提供更多驗證,像是:
- errcheck (檢查是否略過錯誤驗證)
- unused (檢查沒用到的 func, variable or const)
- structcheck (檢查 struct 內沒有用到的 field)
- varcheck (拿掉沒有用到的 const 變數)
- deadcode (沒有用到的程式碼)
go fmt
或 go vet
或 misspell-check (驗證英文單字是否錯誤) 及 vendor-check (驗證開發者是否有去修改過 vendor 而沒有恢復修正)。如果你有在玩開源專案,其實可以不用這麼麻煩,導入兩套工具就可以讓你安心驗證別人發的 PR。底下來介紹一套工具及另外一套雲端服務。
影片介紹
我錄製了一段影片介紹這兩套工具及服務,不想看本文的可以直接看影片此影片同步在 Udemy 課程內,如果有購買課程的朋友們,也可以在 Udemy 上面觀看,如果想學習更多 Go 語言教學,現在可以透過 $1800 價格購買。
golangci.com 服務
先說好這套服務對於私有專案是需要付費的,如果是開源專案,請盡情使用,目前只有支援 GitHub 上面的專案為主,不支援像是 GitLab 或 Bitbucket。對於有在寫 Go 開源專案的開發者,務必啟用這服務,此服務幫忙驗證超多檢查,請看底下


go-critic 工具
go-critic 也是一套檢查程式碼品質的工具,只提供 CLI 方式驗證,不提供雲端整合服務,如果要導入 CI/CD 流程,請自行取用,為什麼特別介紹這套,這套工具其實是在幫助您如何寫出 Best Practice 的 Go 語言程式碼,就算你不打算用這套工具,那推薦壹定要閱讀完驗證清單,這會讓專案的程式碼品質再提升。像是寫 Bool 函式,可能會這樣命名:func Enabled() bool用了此工具,會建議寫成 (是不是更好閱讀了)
func IsEnabled() bool還有很多驗證請自行參考,不過此工具會根據專案的大小來決定執行時間,所以我個人不推薦導入 CI/CD 流程,而是久久可以在自己電腦跑一次,一次性修改全部,這樣才不會影響部署時間。