受够了同事的垃圾代码?我用 Go 写了个自动审查工具

摘要: 拒绝 if err != nil 复读机。一个专为 Go 语言定制、基于 AI、颜值极高的 CLI 代码审查工具,现已开源。

🤬 为什么要造这个轮子?

做过 Tech Lead 或者经常负责 Code Review 的兄弟们肯定都有这种崩溃时刻:

  • 低级错误 :看到同事提交的代码里忽略了 error,或者在循环里启动 Goroutine 却没处理变量捕获。

  • 心累:每天都要在 PR 里评论同样的"请处理错误"、"这里有并发风险"、"变量名太随意了"。

  • Linter 不够用golangci-lint 很棒,但它只能查语法和静态规范,查不出业务逻辑漏洞代码设计问题

我就在想:既然现在的 DeepSeek V3 / GPT-4o 这么强,为什么不能让 AI 在我 git commit 之前,先帮我把这些脏活累活干了?

市面上的 AI 插件要么太贵,要么是 Python 写的启动巨慢,要么必须把代码传给第三方平台不安全。

作为一名 Go 语言工程师 ,我忍不了。于是我利用业余时间,用 Go + Bubble Tea 撸了一个专属于 Gopher 的代码审查工具------Review-Go

🦦 Review-Go 是什么?

简单来说,它是一个驻扎在你终端里的虚拟技术总监

它读取你本地 Git 暂存区(Staged)的代码变更,通过你配置的 AI 模型(OpenAI / DeepSeek / 通义千问),针对 Go 语言特性(并发安全、错误处理、鲁棒性)进行深度审查,并给出一针见血的建议。

✨ 核心亮点:

  1. Go-First 基因:内置了经过反复调优的 System Prompt,专门针对 Go 代码的痛点(Data Race、Panic 风险、接口设计)进行审查。

  2. 极致 TUI 体验 :基于 Bubble Tea 打造,拒绝冷冰冰的文字输出,支持流式渲染、漂亮的 Markdown 高亮。

  3. 快且省:智能解析 Git Diff,只查改动部分。配合 DeepSeek 等高性价比模型,一次 Review 的成本不到 1 分钱。

  4. 安全(BYOK):Bring Your Own Key。你的 API Key 只保存在本地配置文件中,代码直接直连模型 API,中间没有"中间商赚差价",也没有数据泄露风险。

📺 效果演示

的错误,AI 立刻指出了问题并给出了修复代码。

🛠️ 技术栈揭秘

作为一个 Go 开源项目,这也是一个很好的学习 CLI + TUI 开发的案例。项目主要使用了以下神库:

  • CLI 框架 : spf13/cobra ------ 也就是 Kubernetes 和 Docker 都在用的命令行框架。

  • TUI 界面 : charmbracelet/bubbletea ------ Go 语言界最炫酷的终端 UI 库,Elm 架构,并发友好。

  • 配置管理 : spf13/viper ------ 丝滑处理配置文件和环境变量。

  • Markdown 渲染 : charmbracelet/glamour ------ 让终端里的代码高亮像 IDE 一样好看。

为什么用 Go? 因为。Review 过程是高并发的(同时请求 AI 审查多个文件),Go 的 Goroutine 处理这种 IO 密集型任务简直是降维打击。同时编译成单二进制文件,没有任何 Python 环境依赖,扔到服务器上就能跑。

🚀 快速开始

项目已开源,欢迎试用!

1. 安装

go 复制代码
go install github.com/yourusername/review-go@latest

2. 配置 API (支持 DeepSeek/OpenAI/通义)

推荐使用 DeepSeek V3(代码能力强且极其便宜):

arduino 复制代码
review-go config set-key sk-xxxxxxxx --provider deepseek

3. 开始审查

在你的 Go 项目中修改几个文件,然后 git add,接着运行:

go 复制代码
review-go

接下来,就在终端里享受 AI 帮你找 Bug 的快感吧。

🤝 开源地址

这是一个刚刚起步的开源项目,非常需要大家的使用反馈和 Star ⭐️ 支持!

GitHub 地址:github.com/yourusernam...

如果你也是一名追求代码质量的 Gopher,欢迎在 Issue 区留下你的建议,或者直接提 PR,我们一起把它打造成 Go 生态最好用的 Review 工具!

相关推荐
晚风吹长发1 天前
初步了解Linux中的动静态库及其制作和使用
linux·运维·服务器·数据结构·c++·后端·算法
梁下轻语的秋缘1 天前
ESP32-WROOM-32E存储全解析:RAM/Flash/SD卡读写与速度对比
java·后端·spring
wanzhong23331 天前
开发日记8-优化接口使其更规范
java·后端·springboot
羊小猪~~1 天前
【QT】--文件操作
前端·数据库·c++·后端·qt·qt6.3
张彦峰ZYF1 天前
商品供给域的工程化简要设计考量
后端·系统架构·商品模型·商品供给
小北方城市网1 天前
微服务注册中心与配置中心实战(Nacos 版):实现服务治理与配置统一
人工智能·后端·安全·职场和发展·wpf·restful
爬山算法1 天前
Hibernate(47)Hibernate的会话范围(Scope)如何控制?
java·后端·hibernate
源码宝1 天前
云HIS二次开发实施路径指南
后端·源码·二次开发·saas·云his·医院信息系统
李慕婉学姐1 天前
Springboot旅游景点管理系统2fj40iq6(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
蓝眸少年CY2 天前
(第八篇)spring cloud之zuul路由网关
后端·spring·spring cloud