Fix Root Causes 是一个用于调试场景的指导原则类技能。其核心主张是:调试时不要修复症状,而应将每个问题追踪到根本原因并在那里修复。
用途 该技能适用于调试阶段,帮助开发者在面对缺陷时选择正确的修复层级,避免用权宜之计掩盖真正的错误。
主要能力
- 提供一套可遵循的调试模式:
- 先复现问题。
- 不断追问“为什么”,直到触及根本原因。
- 不要添加守卫;给崩溃加一个 nil 检查属于症状修复。
- 如果某个权宜之计需要一整段注释来为其辩护,说明代码是错的——应修复代码,而不是注释。
- 检查模式而非个例:用 grep 搜索同一模式,修复所有实例。
- 卡住时进行观测,不要猜测:添加日志,读取实际错误。
- 如果决定性问题需要深挖才能找到,提出一个低成本、始终开启、本可在第一眼就显示该问题的信号。
- 针对重启相关缺陷给出专门指引:当某功能“重启后失败”时,优先怀疑陈旧的持久化状态,例如配置文件、缓存、锁文件、序列化状态。如果清除某个状态文件即可恢复行为,应优先把状态校验作为修复方案。
理由 资料给出的理由是:症状修复会不断累积;每个 workaround 都让系统更难被理解,而真正的 bug 仍然存在。根本原因修复前期较慢,但能减少总的调试时间。
使用方式 该技能以调试原则的形式给出,按上述模式在调试过程中应用。资料未提供具体的安装命令、代码示例或调用方式。
适用场景 适用于调试各类缺陷,尤其是反复出现、以 workaround 掩盖、或与重启后状态相关的故障。
限制 资料未提供关于收费、价格、平台支持范围或效果保证的信息。该技能为原则性指导,不包含可直接执行的代码或自动化工具。