尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

代码审查交给AI

代码审查交给AI 目录为什么 AI 审代码比人稳在 WorkBuddy 里怎么做核心提示词长这样实跑结果6 个坑一个没跑掉审查报告长什么样几个边界要说清楚WorkBuddy 支持接本地模型支持原理️ 主流接入方式⚙️ 配置步骤以 Ollama 为例 实用建议WorkBuddy 默认支持的云端模型 WorkBuddy 默认支持的云端模型一览 模型选择小贴士你有没有过这种经历周五下午提了个 PR等到下周三才有人 review回复就一句话逻辑看着没问题过。结果上线当天炸了——一个空指针review 的人根本没看那行。不是同事不负责是人 review 代码有天然的弱点会疲劳、会漏看、会凭感觉。一个几百行的 PR能认真看到第 50 行的人都不多。我现在的做法是PR 提给我之前先让 WorkBuddy 过一遍。它不是替代人是替人把那些低级但致命的坑先扫出来。人只需要看业务逻辑对不对。为什么 AI 审代码比人稳人 review 是抽样检查看到哪算哪。AI 是全文扫描而且每次标准一致——不会因为今天心情好就多看你两行。更重要的是AI 不怯场。你让 junior 去 review 架构师的代码他不敢提意见。WorkBuddy 不管你是谁代码有问题就标出来。我做了个实测一段我自己写的下单代码故意埋了 6 个坑SQL 注入、并发不安全、精度丢失、资源泄漏、吞异常、漏校验。丢给 WorkBuddy一次性全揪出来了还给了修复代码。下面说怎么在 WorkBuddy 里跑通这套流程。在 WorkBuddy 里怎么做不需要装任何插件三步第一步把要审的代码文件准备好。可以是一个 Java 文件也可以是 git diff 导出的改动文本。第二步在对话里让 WorkBuddy 读文件并审查。直接说 读取 demo_code_review 目录下的 OrderService.java按以下维度帮我做代码审查空指针风险、SQL 注入、资源是否关闭、并发安全、异常处理、入参校验。每个问题标出文件行号、严重程度、修复代码。WorkBuddy 会用 Read 工具把代码读进来然后逐行分析。第三步让它把审查报告存成文件。在提示词里加一句保存为 review_OrderService.md它就自动 Write 到工作目录。核心提示词长这样这是我实际在用的审查提示词可直接复制改路径你是一名资深 Java 代码审查专家。请读取 {文件路径}按以下维度逐行审查1. 空指针风险所有对象调用前是否可能为空2. SQL 注入是否有字符串拼接 SQL3. 资源关闭Connection/Statement/ResultSet 是否在 finally 或用 try-with-resources 关闭4. 并发安全共享变量是否有竞态、非原子读写5. 异常处理是否有 catch 空块、吞异常、printStackTrace6. 数值精度BigDecimal 是否用了 double 构造7. 入参校验公开方法是否校验了入参输出要求- 按严重程度排序高危 / 中危 / 低危- 每条含行号、问题、修复代码- 最后给整体建议和是否建议合并保存为 review_{文件名}.md实跑结果6 个坑一个没跑掉这是我故意写的问题代码被 WorkBuddy 揪出来的部分// 修复后的安全版本WorkBuddy 给出的建议之一public String createOrder(String userId, String productId, double amount) {// 1. 入参统一校验if (userId null || productId null || amount 0) {throw new IllegalArgumentException(参数不合法);}// 2. BigDecimal 用 valueOf 避免精度丢失BigDecimal price BigDecimal.valueOf(amount);// 3. PreparedStatement 防注入 try-with-resources 自动关资源String sql SELECT id FROM orders WHERE user_id ? AND product_id ?;try (Connection conn DataSourceHolder.getConn();PreparedStatement ps conn.prepareStatement(sql);ResultSet rs ps.executeQuery()) {ps.setString(1, userId);ps.setString(2, productId);ListString ids new ArrayList();while (rs.next()) {ids.add(rs.getString(id));}// 4. AtomicInteger 解决并发计数orderCount.incrementAndGet();return ok: ids.size() : price;} catch (SQLException e) {// 5. 打日志 抛业务异常不吞log.error(创建订单失败 userId{}, userId, e);throw new OrderCreateException(订单创建失败, e);}}注意 orderCount 字段也要改成 private final AtomicInteger orderCount new AtomicInteger(0);否则 incrementAndGet() 编译不过。WorkBuddy 在报告里也标了这一点。审查报告长什么样WorkBuddy 生成的报告是结构化 Markdown每个缺陷带行号、严重程度、修复代码最后给一个是否建议合并的结论。我一般把它贴在 PR 评论里或者存进资料库长期留档。实测下来低级缺陷注入、空指针、资源泄漏它抓得比人准。业务逻辑类的这个方法到底该不该这么设计它给不出好建议那部分还得人来看。几个边界要说清楚第一别让它审整个大仓库。一次审一个文件或一个小 diff质量最高。丢个几千行的模块进去它会抓大放小。第二它的修复代码要人工确认能编译。上面那个例子如果只改方法不改字段AtomicInteger 那行会报错。AI 给的代码是参考不是直接能合。第三敏感代码注意。如果代码不能出内网就别用云端模型审。WorkBuddy 支持接本地模型那个场景更合适。第四可以做成定时任务。如果你每天提很多 PR可以用 automation_update 建个定时任务每天下午跑一遍当天改动的代码文件自动出审查报告。WorkBuddy 支持接本地模型支持原理WorkBuddy 底层兼容OpenAI API 标准协议/v1/chat/completions格式-2。因此任何能提供该格式接口的本地推理服务如 Ollama、LM Studio 等都可以被 WorkBuddy 识别并接入-6。️ 主流接入方式本地工具说明参考Ollama最主流的方式通过http://localhost:11434/v1接入--2LM Studio同样提供 OpenAI 兼容 API配置方式类似-1vLLM / SGLang适合显卡玩家性能更高-18⚙️ 配置步骤以 Ollama 为例第一步安装 Ollama 并下载模型访问 ollama.com 下载安装-7然后在命令行拉取模型以 qwen3:4b 为例ollama pull qwen3:4b中文用户首选 qwen3:4b约 2.5GB 内存8GB 内存可跑中文理解能力最强-7。第二步在 WorkBuddy 中添加自定义模型打开 WorkBuddy 客户端点击左下角头像 →设置→模型-7点击「 添加模型」或「配置自定义模型」-6提供商选择「自定义 / Custom」-6填写以下参数-2-6字段填写内容接口地址http://127.0.0.1:11434/v1/chat/completionsAPI Key任意非空字符串即可如ollama模型名称与ollama list输出一致如qwen3:4b点击保存模型会出现在 WorkBuddy 的模型选择器列表中可直接使用-6。 提示配置信息仅保存在本地~/.workbuddy/models.json文件中不上传云端-6-14。 实用建议组合使用最省积分本地模型处理日常简单任务零消耗云端模型处理复杂推理任务-7硬件建议模型大小控制在 GPU 共享内存的 80% 以内预留 20% 给系统-1故障排查若配置后无法使用检查接口地址是否遗漏/v1后缀以及防火墙是否放行 11434 端口-2配置完成后你就可以在 WorkBuddy 中自由切换本地模型实现完全离线的 AI 辅助体验了。WorkBuddy 默认支持的云端模型WorkBuddy 默认内置了丰富的云端模型库覆盖了从日常办公到专业编程等多种场景。根据官方信息它内置了13 个主流大模型主要来自混元 (Hunyuan)、DeepSeek、智谱 (GLM)、月之暗面 (Kimi)和MiniMax这五家厂商-。下面是这些内置模型的清单以及它们的核心特点和适用场景。 WorkBuddy 默认支持的云端模型一览模型系列具体模型核心特点与适用场景积分消耗系数AutoAuto系统智能调度根据任务自动选择最合适的模型。如果拿不准用哪个选它就对了。视调用的具体模型而定-11混元 (Hunyuan)Hy3 (Hy3 preview)腾讯自研限时免费的思考模型推理能力增强--2。限时免费-11Hunyuan-2.0-Thinking同样是腾讯混元的思考模型擅长逻辑推理--12。需查看官方文档DeepSeekDeepseek-V4-Flash旗舰模型速度优先支持 1M 超长上下文性价比高-11-2。x0.06-11Deepseek-V4-Pro旗舰模型性能优先同样支持 1M 超长上下文-11。x0.16-11智谱 (GLM)GLM-5.2支持1M 超长上下文非常擅长处理长文档、长视频等长程任务--11。x0.79-11GLM-5.1能力均衡适合各类日常使用场景。x0.79-11GLM-5v-Turbo原生多模态模型支持图片理解。x0.95-11月之暗面 (Kimi)Kimi-K3擅长处理复杂的长程自主任务前端开发能力突出在科研推理上表现也很出色--11。x1.62-11Kimi-K2.7-Code面向编程场景优化的多模态模型--11。x0.57-11Kimi-K2.6多模态模型适合处理各类日常任务-11。x0.52-11MiniMaxMiniMax-M3原生多模态在代码编写和智能体任务方面表现优秀--11。x0.25-11MiniMax-M2.7能力均衡性价比高适合日常使用--11。需查看官方文档补充说明列表中的“积分消耗系数”和“限时免费”信息来自社区分享-11-2具体政策请以 WorkBuddy 官方最新公告为准。除上表外WorkBuddy 早期版本或部分文档中还曾提及GLM-5.0、GLM-5.0-Turbo、GLM-4.7、MiniMax-M2.5、Kimi-K2.5等模型--12它们可能已更新为表格中的新版本使用时请以客户端内实际显示的模型列表为准。 模型选择小贴士这么多模型该如何选择这里有几个简单的原则供你参考不确定用哪个选Auto让系统帮你做决定-12。日常任务追求高性价比选Deepseek-V4-Flash-2追求性能均衡选GLM-5.1或MiniMax-M2.7-11。处理超长文档选GLM-5.2或Deepseek-V4系列-11。编程开发优先考虑Kimi-K2.7-Code-11。需要图片理解选择带“视觉”标签的模型如GLM-5v-Turbo或MiniMax-M3-11。复杂推理任务选择Hy3或Hunyuan-2.0-Thinking等思考模型-12。
返回列表