如何利用Go提供的一些工具和参数,帮助写出更好的代码?golang

一. golint 检查代码规范 例如 golint player.go 或 golint game/  并发

golint <directory|files>

golint 会检测的方面:编辑器

  • 变量名规范
  • 变量的声明,像var str string = "test",会有警告,应该var str = "test"
  • 大小写问题,大写导出包的要有注释
  • x += 1 应该 x++

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!