我用了半天才明白,问题不在这台机器上。我先确认了一遍前置条件,再动手。我注释掉了一半代码,bug 消失了,然后我又注释掉了另一半。第二天这个方案就变成了团队标准做法

我把这段代码注释掉问题就没了,说明问题不在它身上。这套流程走下来,我从头到尾又确认了一遍。我发现是缓存的问题,清掉之后一切都正常了。我沉默了,但心里是服的

我把日志加满了,问题反而不出现了。我把整条链路在心里复盘了一遍。我发现是浮点数精度的问题,改用大数就好了。我把它写进了组内的避坑文档第一章

同事说他写的代码零 bug,我在 code review 里找到了三个空指针风险。我在 devtools 里把这个请求重新发了一次,问题不复现。复盘会上我们把它列成了案例

复现不了的 bug 最消耗人,因为你连敌人是谁都不知道。我想反驳,但发现他说得对。我在本地把环境完全对齐了一遍,还是复现不出来。真香定律准时生效

调试了两天的 bug,最后发现是少打了一个等号。我决定先把手上的事情做完再处理这件事。我把这个 bug 的触发条件缩小到了特定的一台机器。第二天这个方案就变成了团队标准做法

这个异常被吞掉了,所以它安静地错了很久。我不知道该说什么,就笑了笑。我发现是浮点数精度的问题,改用大数就好了。第二天这个方案就变成了团队标准做法

调试最花时间的不是修,是确认自己修的是对的地方。我盯着屏幕,觉得这才是我的一天。我把变量全部打印出来对比,发现类型和我想的完全不一样。连茶水间都安静了

我盯了半天,最后发现是拼写和大小写。我盯着屏幕沉默了十分钟。我把日志的时间粒度从秒改成了毫秒,顺序终于排对了

调试最花时间的不是修,是确认自己修的是对的地方。我想反驳,但发现他说得对。我把复现步骤记了满满一页,下次再遇到至少能快一点。同事说这波操作可以写进新人培训教材