调试代码别急着「止痛」!这个四阶段法让我彻底戒掉盲目改 bug 的习惯
调试代码时,你是在「治病」还是「止痛」?
很多程序员看到 bug,第一反应是:「我知道!肯定是 X 问题,改一下试试。」
然后改完发现没好,再改 Y,还不行,再改 Z……
最后终于好了,但没人知道为什么好了。
这个 Skill 就专门治这个。
Systematic Debugging:四阶段找根因
这是一个来自 Superpowers 框架的调试 Skill,核心理念只有一条铁律:
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
没有完成根因调查之前,不准动手修!
它把调试分成四个严格顺序的阶段,每一阶段必须完成才能进入下一阶段:
Phase 1:根因调查(必须最先行)
- 仔细读错误信息——错误消息往往直接藏着解法,别跳读
- 稳定复现——能不能每次都触发?步骤是什么?
- 检查最近变更——git diff、新依赖、配置变化
- 多组件系统要加诊断日志——在每个组件边界记录数据流入/流出,找到哪一层坏了
- 追踪数据流——从症状往回倒推,找到真正出问题的源头
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 或者你自己在调试时遇到僵局,记得先问自己:我真的找到根因了吗,还是只是在止痛?
评论区
登录后可评论。