受够了同事的垃圾代码?我用 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 工具!

相关推荐
码界奇点7 分钟前
基于Spring Boot和Vue.js的视频点播管理系统设计与实现
java·vue.js·spring boot·后端·spring·毕业设计·源代码管理
程序员根根8 分钟前
MySQL 事务全解析:从 ACID 特性到实战落地(部门 - 员工场景)
数据库·后端
回家路上绕了弯19 分钟前
分布式事务本地消息表详解:中小团队的低侵入落地方案
分布式·后端
武子康19 分钟前
大数据-196 scikit-learn KNN 实战:KNeighborsClassifier、kneighbors 与学习曲线选最优 案例1红酒 案例2乳腺
大数据·后端·机器学习
L Jiawen1 小时前
【Golang基础】基础知识(上)
开发语言·后端·golang
张登杰踩1 小时前
django后台管理配置教程
后端·python·django
卜锦元1 小时前
Golang后端性能优化手册(第四章:异步处理与消息队列)
开发语言·后端·docker·容器·性能优化·golang·团队开发
BD_Marathon1 小时前
Spring是什么
java·后端·spring
先做个垃圾出来………1 小时前
创建Flask app应用对象
后端·python·flask
码界奇点1 小时前
基于Spring Boot和Vue.js的房屋出租管理系统设计与实现
vue.js·spring boot·后端·车载系统·毕业设计·源代码管理