七叶笔记 » golang编程 » 优化你的go代码的几个工具

优化你的go代码的几个工具

Golang最近越来越多的人关注了。生态圈也越来越完善了。我们聊了那么多天的 Java ,今天就来聊聊go,目前 github 上也有很多很多的基于go的静态代码处理器,可以帮助我们生成一系列简单且可靠的代码,很多 IDE 也已经集成了了它们。当然,不使用IDE的话你也可以直接使用它们。我们今天就来介绍介绍这些工具。想必这也算是一个不算详细的工具列表集合吧。

gosimple

我们先从比较简单的开始介绍吧,gosimple会寻找到你的代码中可以简化的片段并且提醒你。我们来看一下下面的例子:

上面这段代码使用gosimple运行后会出现这样的提示:

should use ‘return <expr>’ instead of ‘if <expr> { return <bool> }; return <bool>’

很明显,我们可以根据它给的提示来简化上面的代码,用直接return的方式来替代if的模式。

当然,gosimple还有很多很多的规则,具体的可以在gosimple的官网中查看。

golint

熟悉js的同学肯定用过eslint,golint的作用和eslint是一样的,它是一个对go的 编码 风格的检查器。

例如,当public方法没有注释的时候它会提示你;当你的注释没有遵循最佳实践的时候它会提示你;当你写了一个方法叫newJsonData()的时候它会提示你newJSONData()是个更好的选择等等。

go vet

go自带的工具,你可以直接用go vet命令来调用它。

是一个用于检查Go语言源码中静态错误的简单工具。与大多数Go命令一样,go vet命令可以接受-n标记和-x标记。-n 标记用于只打印流程中执行的命令而不真正执行它们。-n标记也用于打印流程中执行的命令,但不会取消这些命令的执行。

unused

当你使用go fmt,linter和你的优秀的大脑检视过一段代码之后,你觉得这是正确无误的时候。使用unused可能会帮你查出你可能没发现的问题,一些未使用的变量存在你的代码中。

虽然在代码中夹杂着一些未使用的变量对于解释器来说是无关痛痒的事情,但是对于开发习惯和新手来说,及早养成这样的编码习惯是很重要的。并且也会提高一些解释器的功效。

gometalinter

gometalinter是一个集大成者,它集成了上述的所有的工具,还有一些我没提到的工具,它可以简单的使用一个集成的方式来运行上面的所有的检查点,但是由于是一个集大成者会导致出现的提示比较多,如果新手一次性看见这么多的问题估计一时半会儿会懵逼,多用几次就熟练了。

总结

你虽然可以在每次保存文件的时候运行go fmt ,但是像vim-go这样的插件或者Visual Studio Code等编辑器可以直接整合的gometalinter,甚至一些插件可以提供的内嵌的提示都比go fmt看起来好用点。当然,只要是以来改善代码质量为原则的事情,一个一个来启动这些工具也是未尝不可的。

最后,如果你足够勇敢和耐心,你可以直接将他们整合到你的CICD中,在构建项目之前全部跑一边,当然这也要取决于你的侧重点,不一定都要采用的。本文只是抛砖引玉,如果大家有更好的工具可以在文章下面留言哦。欢迎交流。

相关文章