乐于分享
好东西不私藏

AI 编程避坑指南:如何用 Claude 改 Bug,不留“后遗症”?

AI 编程避坑指南:如何用 Claude 改 Bug,不留“后遗症”?

AI 再聪明也有极限,它可能帮你瞬间写出逻辑,也可能在修复一个 Bug 的同时,悄悄埋下三个隐患。

在软件工程领域,最稳固的防线依然是严谨的开发规范。想要让 Claude 成为你最高效的“代码助手”,而不是“Bug 制造机”,你需要掌握这一套“防翻车”工作流。

01. 测试先行:TDD 思维的“硬指标”

在让 Claude 改 Bug 前,切忌直接修改代码。先让它编写一个“能够稳定复现该 Bug 的单元测试”。

改完代码后,不仅该测试必须通过,更要运行项目原有所有单测(Regression Testing),确保没有“红条”。

💡 辅助提示词模板

“你现在是一位资深的自动化测试专家和 QA 架构师。我需要你针对一个现有的 Bug,编写用于复现和后续回归的测试用例。

【业务代码】 [贴入相关代码片段]【Bug 表现与上下文】 [触发条件/预期行为/实际错误]

【请执行以下任务】

  1. 分析根本原因:列出调用栈和受影响的变量状态。

  2. 编写复现测试(Red Test):使用 [Jest/PyTest等],要求在修复前运行必须断言失败。

  3. 编写回归测试矩阵:编写 3-5 个核心逻辑用例及 5 个关联场景,防止‘按下葫芦起了瓢’。

  4. 提供清晰的断言:包含明确的断言和失败描述。”

⚠️ 特别提醒: 限制上下文颗粒度。喂给 AI 的代码片段最好不超过 200 行,聚焦核心逻辑,能大幅降低 AI 产生幻觉的概率。

02. 分析先行:强迫 AI “深思熟虑”

不要让 AI 直接给出修改后的代码,而是通过分步骤对话,强迫它进行逻辑推理:

  • 第一步(只问分析): “请帮我分析导致该 Bug 的根本原因是什么?”

  • 第二步(讨论方案): “针对这个原因,有哪些修复思路?各有利弊如何?会影响哪些调用方?”

  • 第三步(最终落地): “决定使用方案 A,请给出具体的代码修改 Diff,并附带针对性的测试用例。”

03. 黑客评审:让 Claude 扮演“挑剔的架构师”

代码生成后,千万别直接合并! 利用“自我反思机制”,把生成的方案再扔回给它进行一次严厉的 Code Review。

💡 进阶提问法

“这是你刚才提供的修复方案。现在请你扮演一位极其挑剔的资深架构师,帮我找出:

  1. 这段代码有没有可能引入新的内存泄漏、死锁或性能衰退?

  2. 如果输入极端异常数据,它会不会崩溃?

  3. 是否破坏了原有的多线程安全逻辑?

  4. 最后,输出经过 review 后的最终代码 Diff。”

04. 模拟验证:在“落地”前做一次闭环测试

你可以让 Claude 扮演 QA 工程师,对自己生成的修复方案进行逻辑上的“模拟测试”。

如果发现 [失败] 项,要求它立即调整方案,直到它自己认可方案的稳健性为止

05. 核心防线:人工审查的“黄金三部曲”

虽然可以让 Claude 替你操作代码,但你必须履行“最终质检员”的职责。在提交代码前,必须执行以下三步:

  1. 运行本地测试: 确保所有测试全绿(包括复现用例和老测试)。

  2. 人工 Review Git Diff: 逐行对比,检查它是否顺手改了无关的变量名或注释。

  3. 小步提交: 确认无误后,立即执行 git commit

结语

只要守住“测试自动化 + 人工最后 Review”这两条底线,把修改代码的脏活累活放权给 AI,不仅是安全的,更是现代工程师提升效率的唯一路径。

记住:AI 是你的杠杆,而代码的安全性,永远掌握在你手中。