很棒的Go Linters
精心策划的Go Linter的清单。
由Golangci赞助:SaaS服务用于在GitHub拉的请求上运行衬里。免费提供开源。

内容
- 云衬里
- 衬里
- 代码格式
- 代码复杂性
- 样式和图案检查
- 错误
- 未使用的代码
- 表现
- 报告
- 杂项
- Linters助手工具
云衬里
集中精力
- Golangci-用于在GitHub拉的请求上运行Linters的开源SaaS服务。免费提供开源。
- Golint Online-使用Golint软件包,在GitHub,Bitbucket和Google Project托管的GoTe Online Go源文件。
- Gopherci -Gopherci通过检查每个GitHub拉力请求,向后不兼容的更改以及其他测试套件来帮助您维护高质量的GO项目。
- GO报告卡 - GO回购报告卡。
通用目的
- 编码气候 - 开放且可扩展的静态分析平台。
- CodeFactor-在GitHub或Bitbucket上存储的自动代码分析。
- Houndci- github拉请求的代码审核工具
- 量化码 - 自动代码审查和维修
- 审查器 - 可以与github集成的专有代码质量检查器
- Sideci-自动代码审核工具。提高开发人员的生产率。
衬里
代码格式
- DEDUPIMPORT-修复具有相同导入路径但导入名称不同的重复导入。
- GOFMT -GOFMT格式GO程序。必须有每个项目。不要忘记使用-s标志。
- GoFumpt-该工具是GOFMT的修改后叉,在向后兼容的同时,比GOFMT执行更严格的格式。
- Goimports -Goimports完成了GOFMT所做的一切。此外,它检查未使用的导入。
- 不明智的 - 报告代码,不必要地缩进
代码复杂性
- ABCGO -ABC指标用于GO源代码。
- 深度 - 计算GO函数的最大值。出于可读性目的,查看是否需要将功能拆分为几个较小的功能是有帮助的。
- funlen-检查长功能的衬里。它可以检查行的数量和语句的数量。
- GoCyclo-计算并检查功能的环境复杂性。
- Nakedret -Nakedret是GO静态分析工具,可在功能中找到大于指定功能长度的裸返回。
- 夹板 - 它发现任何函数太长或参数过多或结果。
样式和图案检查
- 狗狗 - 找到空白标识符太多的作业/声明。
- DUPL-代码克隆检测的工具。
- Go -CheckCtyle- CheckStyle是Java CheckStyle等样式检查工具。该工具灵感来自Java CheckStyle,Golint。样式指的是GO代码评论评论中的某些点。
- Go-Cleanarch-GO-Cleanarch的创建是为了验证清洁体系结构规则,例如依赖关系规则和go项目中的软件包之间的互动。
- GO一致 - 源代码分析仪,可帮助您使GO程序更加一致。
- Go -NemeCheck-源代码分析仪,可帮助您维护项目内部的变量/字段命名约定。
- go-printf-func-name-检查末尾用
f
命名的printf样函数。 - Go-Ruleguard-定义和运行基于模式的自定义鳞片规则。
- gochecknoinits-查找初始化功能,以减少代码中的副作用。
- gochecknoglobals-查找全局var,以减少代码中的副作用。
- GoConst-在Go重复的字符串中找到可以用常数代替的字符串。
- Golint -Golint是GO源代码的衬里。
- Gosimple -Gosimple是专门从事简化代码的GO源代码的衬里。
- IMPI-验证进口分组和订购。
- InterFacer-建议较窄的接口类型。
- lll-线长衬里,用于在文件中执行线长度。
- 拼写错误 - 发现通常拼写错误的英语单词
- nofuncflags-禁止布尔参数到函数(标志)。
- 预定 - 找到Shadows Go的内置标识符(例如,
append
, copy
, int
)的代码。 - 复活-〜6倍更快,更严格,可配置,可扩展和美丽的GOLINT替代品
- Unconvert-从GO源中删除不必要的类型转换。
- USEDEXPORTS - 在GO导出的变量中查找可能无法说明的变量。
- 空格 - 在功能的开头和结束时检查不必要的新线
错误
- APICompat-检查GO项目的最新更改,以使向后不兼容的更改。
- 糟糕的时间 - 糟糕的时间是一个golang linter,可检测到时间结构的不适当用法。
- Bodyclose-检查HTTP响应主体是否关闭,并重复使用TCP连接
- Durcheck -Durcheck是一个非常简单的Linter,可以通过时间来检测潜在的错误。
- ENUMCASE- ENUMCASE检查每个开关语句处理类型的所有const值。
- Enumlinter- GO中的枚举类型的Enum Linter。
- Errcheck -Errcheck是一个程序,用于检查GO程序中未检查的错误。
- GAS-通过扫描GO AST检查源代码是否有安全问题。
- Go Vet -VET检查GO源代码并报告可疑构造,例如其参数与格式字符串不一致的printf调用。可以检查变量的阴影,但必须明确启用。
- GoSumcheck-检查所有可能的类型开关情况。
- go-sumtype-处理所有可能的类型开关情况。
- Mulint- GO Go Lint检测到递归锁,这可能会导致死锁。
- SAFESQL- golang的静态分析工具,可预防SQL注射。
- scopelint -scopelint检查GO程序中未锁定变量。
- sqlrows-检查是否在sql.rows上进行关闭。
- 静态检查 - 在类固醇上进行
go vet
,应用大量的静态分析检查,您可能会从诸如C#的Resharper之类的工具中使用大量静态分析检查。
未使用的代码
- dead代码 - 找到未使用的代码。
- 效率调节 - 检测何时不使用对现有变量的分配。
- 结构检查 - 找到未使用的全局变量和常数。
- UNPARAM-报告未使用的功能参数。
- 未使用的 - 未使用的检查GO代码,适用于未使用的常数,变量,功能和类型。
- Varcheck-找到未使用的全局变量和常数。
表现
- AlignCheck-警告不合时宜的结构。
- 模仿者 - 静态分析GO代码和报告按值传递大结构的功能。
- 损害 - 检测GO结构的工具,如果将其字段分类,将减少内存。
- PREALLOC-查找可能会预先分配的切片声明。
- rangerdanger-检测范围语句迭代在可寻址数组上的工具
报告
- FLEN-获取GO软件包中功能长度的信息。
- Goreporter-一种Golang工具,可以进行静态分析,单位测试,代码审查和生成代码质量报告。
- Golinters -Golinters生成有关GO Linters的HTML报告。
杂项
- 更新的 - 显示过时的软件包的控制台应用程序。
- Go-Template-lint-Go-Template-lint是GO文本/模板(和HTML/Template)模板文件的Linter。
- Godox-查找所有待办事项/FixMe的评论。
- 术语 - 一组特定的检查。
- Megacheck- Megacheck运行静态,Gosimple,并且一次未使用。因为它能够重复使用工作,所以它比单独运行每个工具的速度更快。
- Go -Critic -source Code Linter带来了当前未在其他衬里中实现的检查。
- TARP- TARP在GO源代码中找到没有直接单位测试的功能和方法。
- GO -MND- GO的魔术数字检测器。
- GoCheckit-一个GO工具,可帮助识别折衷的GO模块。
Linters助手工具
- Golangci -lint- GO的林格跑者。比Gometalinter快5倍。不错的彩色输出。只能报告新问题。较少的假阳性。 YAML/TOML配置。
- Gometalinter-金属因素是一种自动应用所有静态分析工具并以归一化形式报告其输出的工具。
- 绒毛 - 运行衬里作为GO测试的一部分。
- REVGREP-静态分析工具的过滤输出,仅显示最近更改的代码行
- ReviewDog-“ ReviewDog”提供了一种将评论评论发布到代码托管服务(例如GitHub)通过轻松与任何Linter工具集成在一起的方法。
- ZB-通过缓存GomeTalinter结果加速覆盖。
- Golintui-一个简单的GO Linter端子UI。