Go工程代码检查工具
bodyclose
项目地址:https://github.com/timakin/bodyclose
一个用于检查http.Get()
返回值有没有正确关闭问题:
resp, err := http.Get("http://example.com/")
if err != nil {
// handle error
}
defer resp.Body.Close() // OK
body, err := ioutil.ReadAll(resp.Body)
deadcode
项目地址:https://github.com/remyoudompheng/go-misc/tree/master/deadcode
检查无用的变量声明工具。
depguard
项目地址:https://github.com/OpenPeeDeeP/depguard
通过自定义依赖包白、黑名单,确保import的包都是可控的。
errcheck
funlen
https://github.com/ultraware/funlen
用于检查函数长度,包括函数代码行数和语句行数。
gochecknoinits
goconst
gocognit
项目地址:https://github.com/uudashr/gocognit
用于检查代码复杂度,有点类似圈复杂度。
gocyclo
项目地址:https://github.com/fzipp/gocyclo
用于检查代码复杂度,类似于gocognit。
godox
goimports
golint
gosimple
项目地址:https://github.com/dominikh/go-tools/tree/master/simple
Dominik Honnef作品,用于检查可以优化的代码。
注:该工具已经整合到staticcheck中了。