必须换掉golint,因其已于2021年归档停更,存在性能差(大型项目检查慢)、无TOML配置、无法按需启停规则或行级跳过等缺陷;revive以4–6倍速度提升、TOML灵活配置、支持规则级/文件级/行级禁用,成为事实标准。

revive 是当前 Go 项目中替代 golint 的事实标准,golint 已归档且不再维护,直接用 revive 能解决性能、配置、扩展性三方面问题。
为什么必须换掉 golint
golint 在 2021 年已被官方归档,后续不再修复 bug 或新增规则。实际使用中会遇到:golint 在大型项目里检查耗时明显(尤其 CI 阶段),不支持 TOML 配置,无法按需开关单条规则,也不能跳过某行或某文件——这些在 revive 里都原生支持。更关键的是,revive 运行速度比 golint 快 4–6 倍,对中大型项目影响显著。
安装与基础运行 revive
安装命令是:
go install github.com/mgechev/revive@latest
安装后确保 $GOPATH/bin 在系统 PATH 中。验证是否生效:
立即学习“go语言免费学习笔记(深入)”;
revive -version
最简运行方式(检查当前包):
revive ./...
但这样会启用全部默认规则,容易误报。建议立刻配 .revive.toml 文件,否则团队协作时规则不一致问题很快暴露。
配置 .revive.toml 控制检查行为
在项目根目录创建 .revive.toml,内容示例:
[rule.exported] severity = "warning" [rule.blank-imports] severity = "error" [rule.var-declaration] severity = "warning"
常见配置要点:
-
severity可设为error或warning,CI 中可只让error级别阻断构建 - 禁用某规则:把对应 section 的
severity改成off - 规则名必须和
revive官方文档一致,比如unexported-return、package-comments,拼错就无效 - 配置文件路径必须是项目根目录,
revive不会向上查找父目录
运行时指定配置:
revive -config .revive.toml ./...
在编辑器中集成并控制粒度
VS Code 用户在 settings.json 中加这几行即可保存时自动检查:
{
"editor.codeActionsOnSave": {
"source.fixAll.revive": true
}
}
注意:revive 默认不自动修复(不像 gofmt),只报告问题;修复需靠编辑器插件或手动改。更实用的是注释级控制:
- 跳过整文件:
//revive:disable放在文件顶部 - 跳过下一行:
//revive:disable-next-line - 只禁用某规则:
//revive:disable:unexported-return
这些注释指令在处理实验性代码、第三方适配层或遗留模块时非常关键——硬关全局规则不如精准豁免。
真正难的不是装上 revive,而是团队对每条规则的 severity 达成共识,并把 .revive.toml 提交进仓库。否则本地配置和 CI 不一致,问题只会在合并时爆发。


















