• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go代码检修工具集

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

gofmt

Go安装程序中自带了gofmt工具,可以使用它来格式化代码,保持一致的代码风格:

$ find . -name "*.go" -not -path "./vendor/*" -not -path ".git/*" | xargs gofmt -s -d

gocyclo

gocyclo 用来检查函数的复杂度。

安装:

$ go get -u github.com/fzipp/gocyclo

使用:

$ gocyclo -over 12 $(ls -d */ | grep -v vendor)

上面的命令列出了所有复杂度大于12的函数。你还可以提出最复杂的几个:

$ gocyclo -top 10 $(ls -d */ | grep -v vendor)

interfacer

interfacer 是一个有趣的工具,依照作者所说:

这个工具提供接口类型的建议,换句话说,它会对可以本没有必要定义成具体的类型的代码提出警告

安装:

$ go get -u github.com/mvdan/interfacer/cmd/interfacer

使用:

$ interfacer $(glide nv)

译者按:看官方的例子就明白这个工具的作用了:

func ProcessInput(f *os.File) error {
        b, err := ioutil.ReadAll(f)
        if err != nil {
                return err
        }
        return processBytes(b)
}
$ interfacer $(go list ./... | grep -v /vendor/)
foo.go:10:19: f can be io.Reader

deadcode

deadcode会告诉你哪些代码片段根本没用。

安装:

$ go get -u github.com/tsenart/deadcode

使用:

$ find . -type d -not -path "./vendor/*" | xargs deadcode

gotype

gotype会对go文件和包进行语义(semantic)和句法(syntactic)的分析,这是google提供的一个工具。

安装:

$ go get -u golang.org/x/tools/cmd/gotype

使用:

$ find . -name "*.go" -not -path "./vendor/*" -not -path ".git/*" -print0 | xargs -0 gotype -a

misspell

misspell用来拼写检查,对国内英语不太熟练的同学很有帮助。

安装:

$ go get -u github.com/client9/misspell

使用:

$ find . -type f -not -path "./vendor/*" -print0 | xargs -0 misspell

staticcheck

staticcheck是一个超牛的工具,提供了巨多的静态检查,就像 C#生态圈的 ReSharper 一样。

安装:

$ go get -u honnef.co/go/staticcheck/cmd/staticcheck

使用:

$ staticcheck $(glide nv)

gosimple

gosimple 提供信息,帮助你了解哪些代码可以简化。

安装:

$ go get -u honnef.co/go/simple/cmd/gosimple

使用:

$ gosimple $(glide nv)

译者按: 事实上这个工具和上面的staticcheck工具已经合并为同一个项目了:go-tools,这个项目提供了非常好的工具, 还包括 structlayout-optimizeunusedrdepskeyify等,值的你去探索。

goconst

goconst 会查找重复的字符串,这些字符串可以抽取成常量。

$ go get -u github.com/jgautheron/goconst/cmd/goconst

使用:

$ goconst ./… | grep -v vendor

以上是作者列出的一些工具, 和我以前的一篇文章中列出的工具有很多重合的: 使用工具检查你的代码, 事实上我在项目中已经使用了文中很多的代码,非常非常的有帮助,希望你在阅读后能有所收获,快将这些工具加入到你的Makefile文件中吧。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Goland搭建Go开发环境 - 亚图姆发布时间:2022-07-10
下一篇:
SSH介绍以及go客户端脚本实现发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap