如何利用Go提供的一些工具和參數,幫助寫出更好的代碼?golang
一. golint 檢查代碼規範 例如 golint player.go 或 golint game/ 併發
golint <directory|files>
golint 會檢測的方面:編輯器
ps:連 a+=1 都要改成a++,a+=2反而沒問題,有點接受不了!!!工具
二. go vet 檢查代碼存在的隱患 例如 go tool vet . 或 go tool vet game/ 性能
go tool vet <directory|files>
錯誤示例: https://studygolang.com/articles/9619測試
三. --race 檢查是否有race condition(併發競爭) 例如:go run --race trace.go 或 go build --race trace.goui
golang在1.1以後引入了競爭檢測的概念。咱們能夠使用go run -race 或者 go build -race 來進行競爭檢測。
golang語言內部大概的實現就是同時開啓多個goroutine執行同一個命令,而且紀錄每一個變量的狀態。編碼
可是這個參數會引起CPU和內存的使用增長,很耗性能,因此基本是在測試環境使用,不是在正式環境開啓。spa
最後補一下編碼規範,能夠在goland編輯器使用插件go fmt,統一規範項目組的代碼編寫:插件
ok,that's all, thanks!