go 代码检测
Go 代码检测通常指的是对代码进行静态分析,以找出潜在的错误、不符合规范的编码习惯以及性能上的优化点。
Go Vet
已包含在 Go 标准库中,无需额外安装。go vet 是 Go 语言提供的静态代码分析工具,用于检查 Go 源代码中潜在的常见错误和可疑构造。它旨在捕获那些编译器不会报错但可能导致程序运行时出现问题的代码片段。
使用
使用方式:go vet [package] 或者 go vet [file.go]
go vet ./...
NilAway
NilAway 是一个静态分析工具,旨在帮助开发人员通过在编译时而不是运行时捕获它们来避免生产中的 nil 恐慌。NilAway 类似于标准的 nilness 分析器,但是,它采用了更复杂和强大的静态分析技术来跟踪包内的 nil 流以及跨包的 nil 流,并报告错误,为用户提供 nilness 流以便于调试。
项目地址:nilaway
使用
使用前先安装
go install go.uber.org/nilaway/cmd/nilaway@latest
扫描目录下的所有文件
nilaway ./...
Go Vet 和 NilAway 一起使用能检查出绝大部分问题,如果还觉得不够的话,可以使用下面这些工具.
其他
Golint
安装:go get -u golang.org/x/lint/golint
使用方式:golint [package]
或者 golint [file.go]
Staticcheck
安装:go install honnef.co/go/tools/cmd/staticcheck@latest
使用方式:staticcheck [package]
或者 staticcheck [file.go]
Errcheck
安装:go get -u github.com/kisielk/errcheck
使用方式:errcheck [package]
或者 errcheck [file.go]
Deadcode
安装:go get -u github.com/remyoudompheng/go-misc/deadcode
使用方式:deadcode [package]
或者 deadcode [file.go]
Gosec
安装:go get -u github.com/securego/gosec/v2/cmd/gosec
使用方式:gosec [directory]
Gocyclo
安装:go get -u github.com/fzipp/gocyclo
使用方式:gocyclo -over [threshold] [file.go]
Go Meta Linter (Gometalinter)
安装:go get -u gopkg.in/alecthomas/gometalinter.v2 && gometalinter.v2 --install
使用方式:gometalinter.v2 [options] [packages]
Revive
安装:go get -u github.com/mgechev/revive
使用方式:revive [args]