该技能是一条面向调试的原则,核心判断规则是:当两个或两个以上共享同一前提的修复在同一个校验环节(gate)失败时,应怀疑这个前提,而不是继续写第三个修复。其理由是,每一次失败的修复都是对其所假定信念的反证;在同一前提下再花力气,等于把精力投向证据已经表明不是原因的地方。
使用方式按以下模式进行:
- 写下前提。前提是所有失败修复共同假定的那一句话。
- 在下一个修复之前检验前提。找到一个如果前提为假就会呈现不同结果的观察,并实际去做这个观察。不要只看失败的规模,还要看失败的分布。检查应按照 /pstack-principle-build-the-lever 的做法可重复运行。
- 跟随证据。如果证据与前提矛盾,说明原因在别处,应寻找这些失败共同具有、而前提未能预测到的特征;如果证据确认了前提,则按照 /pstack-principle-fix-root-causes 追问下一个“为什么”,此前的修复可能只是处理了后果而非原因。
- 移除条件而非补偿。按照 /pstack-principle-laziness-protocol,如果证据显示某一部分总是落在失败的一侧,就改变导致它如此的那个环节;事后清理的机制会保留原因,并在每次运行时增加工作量。
停止规则:在前提被写下并检验之前,不要开始下一个修复。
与其他原则的区别:该原则不同于 /pstack-principle-redesign-from-first-principles,后者是围绕新需求重建设计;本原则质疑的是当前设计所假定的某个事实。
适用场景:同一问题反复修复却反复卡在同一测试或校验环节的开发调试过程。限制:资料未提供具体实现细节、安装方式、运行平台或任何收费信息,暂未提供。