调试最困难的时刻,往往不是找不到问题,而是深信自己知道问题在哪。我见过自己花两小时检查数据库连接,最后发现只是拼错变量名。现在,我学会在调试陷入僵局时强制重置假设:关掉代码,从零描述现象;向别人解释问题,在解释过程中往往自己就发现了逻辑漏洞;或者用最“笨”的方法,从程序入口开始逐行添加日志。最难调试的不是代码,是调试者自己固执的思维。