用途
该技能适用于调试场景。其核心主张是:调试时应修复故障本身,而不是故障暴露出来的位置。症状只是错误状态变得可见的地方,根因则是系统第一次做了不该做的事、或未能处理本应处理的状态的位置。
主要能力
- 将每个症状追溯到系统第一次出错的位置,并在那里修复。
- 提供一套可遵循的调试模式:先复现;在每一步追问“为什么”,直到答案指向代码中的错误决策,而不是前一个决策的后果;卡住时进行插桩,读取实际错误与实际状态,不靠猜测。
- 判断触发症状的状态是否合法:如果系统可能处于该状态,那么在该状态上出错的代码就是根因,在此处处理该状态即为修复;如果该状态本不应存在,那么在出错处加检查只会掩盖缺陷,应找出产生该状态的原因。
- 指出守卫、重试、吞掉错误、截断数值、丢弃状态是隐藏缺陷的常见方式。
- 当问题只在重启后出现时,优先怀疑持久化状态:配置文件、缓存、锁文件、序列化状态。
- 要求按模式而非个例排查,找出所有存在相同缺陷的位置并全部修复。
- 提出判断标准:如果某个变通方案需要一段很长的注释来辩护,说明代码是错的,应修复代码而不是注释。
- 如果决定性问题需要深入挖掘才能发现,建议提出一个低成本、始终开启的信号,使其在第一次查看时就能显现。
使用方式
该技能以原则形式给出,未提供具体的安装命令、代码示例或调用步骤。使用时将其作为调试过程中的指导准则,按上述模式逐步执行。
适用场景
适用于各类调试工作,尤其是需要定位并消除缺陷根本原因、避免症状级修补的场合。
限制
资料未提供该技能的具体实现形式、安装方式、依赖要求、平台支持或收费信息,这些内容暂未提供。