雾天调试法

看不清全局的时候,就先看清脚下的一米。日志是灯,断点是路标。

有些 bug 像雾天进山:你知道路就在附近,但能见度只有一米。这种时候最没用的动作是站在原地回忆地图——地图是晴天的东西,雾天有雾天的走法。

雾天调试法的核心只有一句:不看全局,只看脚下。全局是推断出来的,脚下是测量出来的。推断在雾里会骗人,测量不会。

日志是灯

第一件事永远是点灯。在怀疑的路径上放一行日志,让它告诉你程序 actually 走到了哪——不是你以为它走到了哪。十次里有六次,灯一点亮,雾就散了一半:原来根本没进这个分支。

灯要放得近。别在函数入口放一盏就指望照亮全程,每隔几步放一盏,像雾天在路边的反光桩。console.log 不丢人,丢人的是盯着代码看了四十分钟,最后发现配置文件没生效。

断点是路标

灯照亮现在,路标确认方向。断点的价值不是停下来,而是验证"到这里为止,世界还是我以为的样子"。变量名、类型、那串你以为一定是字符串的 ID——在断点里一个个看过去,总有一个会在你嘴里变成"咦"。

那个"咦"就是路标。调试的进度不是按时间算的,是按"咦"的次数算的。

一米一米地走

最反直觉的一条:雾里走得慢的人先到家。把问题切成一米长的小段,每段都验证,不跳步。跳步是晴天特权——你在雾里跳过三米,落地时发现站在沟里,还得爬回来重走。

等雾散了你会发现,那些一米一米走出来的路,恰好也是你对这段代码理解最深的地方。雾天不是障碍,是慢下来的理由。