官网地址:(点击最下方【阅读原文】可直达)https://tca.tencent.com/
官方介绍:https://cloud.tencent.com/product/tcap
境内开源:https://cnb.cool/tca/code-analysis
境外开源:https://github.com/Tencent/CodeAnalysis
▼
Go语言社区有很多优秀的linter,也就是静态代码分析工具,帮助维护代码质量。
其中知名的GolangciLint是一个快速的Go语言linters运行器,它并行运行linters,并包含一百多个linters,其中包含govet、errcheck等常用linters 。腾讯云代码分析已支持工具GolangciLint,并可通过工具规则配置其众多linters。
例如今天要讲解的Govet这个linter,以及如何在腾讯云代码分析上使用它。
▼
Vet检查Go源代码并报告可疑结构,例如Printf调用,其参数与格式字符串不一致。Vet 使用启发式方法不能保证所有报告都是真正的问题,但可以发现错误未被编译器捕获。
Govet可用的检查例如:
规则名 | 简介 |
---|---|
atomic | 检查使用 sync/atomic 的常见错误(例如直接赋值给原子值) |
assign | 检查无用的赋值语句(例如 x = x) |
fieldalignment | 检测结构体字段排序,以减少内存使用 |
printf | 检查 Printf 格式字符串和参数的一致性(例如缺少参数) |
unusedresult | 检查未使用的函数调用结果 |
... | ...... |
官方文档:https://pkg.go.dev/cmd/vet
示例:
▼
进入页面,点击方案->规则配置 -> 自定义规则包-> 添加规则 ->搜索规则名Govet->选择需要添加的规则 ->添加规则
启用所有govet检查项,并设置其中的shadow严格检测,可能会检出更多问题以及造成误报干扰
可在tca规则参数,使用json格式,参照 GolangciLint 的 linter 配置(https://golangci-lint.run/usage/linters/#govet)进行设置