调试代码别急着「止痛」!这个四阶段法让我彻底戒掉盲目改 bug 的习惯

调试代码时,你是在「治病」还是「止痛」?

很多程序员看到 bug,第一反应是:「我知道!肯定是 X 问题,改一下试试。」

然后改完发现没好,再改 Y,还不行,再改 Z……

最后终于好了,但没人知道为什么好了。

这个 Skill 就专门治这个。


Systematic Debugging:四阶段找根因

这是一个来自 Superpowers 框架的调试 Skill,核心理念只有一条铁律:

NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
没有完成根因调查之前,不准动手修!

它把调试分成四个严格顺序的阶段,每一阶段必须完成才能进入下一阶段:

Phase 1:根因调查(必须最先行)

  1. 仔细读错误信息——错误消息往往直接藏着解法,别跳读
  2. 稳定复现——能不能每次都触发?步骤是什么?
  3. 检查最近变更——git diff、新依赖、配置变化
  4. 多组件系统要加诊断日志——在每个组件边界记录数据流入/流出,找到哪一层坏了
  5. 追踪数据流——从症状往回倒推,找到真正出问题的源头

Phase 2:模式分析

找到根因线索之后,不要急着动手。先找同类正常工作的代码,对比差异,把所有不同点都列出来。

Phase 3:假设+验证(科学方法)

形成明确假设:「我认为是 X 导致的,因为 Y」。然后做最小改动只验证这一个假设。不要一次改多个东西。

Phase 4:修复+验证

修根因,不是修症状。修复后必须验证测试通过、其他测试没被破坏。


它为什么值得装?

越紧急越要系统化。 真正的高手在 deadline 压顶时反而更遵守流程,因为经验告诉他们:跳步才会导致返工。

三次修复失败就喊停。 如果你已经尝试了 3 次修复,每次都暴露了新问题——这不是 hypothesis 错了,是架构本身有问题。这时候要停下来和人类讨论,而不是继续硬改。

这个 Skill 适合任何使用编程 agent 的场景:Claude Code、Cursor、Codex 都能装。装上之后,你的 agent 遇到 bug 会自动走这四阶段,而不是上来就「try this fix」。


安装方式

Superpowers 框架支持 11 种 coding agent,直接去 GitHub 仓库看对应你使用的 agent 的安装方式:

👉 https://github.com/obra/superpowers

Systematic Debugging 是框架内置技能之一,装好 Superpowers 就能用。


调试是编程的核心技能,而这个 Skill 把这个核心技能系统化、流程化。下次你的 agent 或者你自己在调试时遇到僵局,记得先问自己:我真的找到根因了吗,还是只是在止痛?


GitHub: https://github.com/obra/superpowers

评论区

0 条评论

登录后可评论。

苏棠 12 阅读