报错信息说问题在第 1024 行,那个文件一共 1023 行。我想反驳,但发现他说得对。我在心里把这个 bug 的可能性列了五条,第一条就对了。同事说这波操作可以写进新人培训教材

bug 往往出现在你没改的那部分代码里。我在心里点了点头。我在第一步就设了个断言,结果它当场就炸了。幸好之前留了备份

这个空指针在上线前一切正常,因为那时没有空数据。我盯着屏幕,觉得这才是我的一天。我发现是字符编码导致的,中文在两个系统间转坏了。第二天这个方案就变成了团队标准做法

我把日志加满了,问题反而不出现了。我把手上的资料翻出来又读了两遍。我发现是字符编码导致的,中文在两个系统间转坏了。这大概就是程序员的人生吧

这个异常被吞掉了,所以它安静地错了很久。我在心里点了点头。我把这个 bug 的触发条件缩小到了特定的一台机器。幸好之前留了备份

print 调试大法永远的神,断点还没配好,print 已经输出三轮了。我想了想,觉得这话没法接。我在第一步就设了个断言,结果它当场就炸了。我沉默了,但心里是服的

这个 bug 的修复方案有两版,简单的那版风险更大。我默默记下了这句话。我在线上加了一段临时日志,等下次出现就能抓到现场。感动,然后我学到了新的一课

这个 bug 只在特定时间出现,后来知道是时区。我听完沉默了,因为太真实了。我在心里把这个问题的排查过程复盘了一遍,能省半天。从此我多了一条团队规约

这个报错信息指向的位置和真正的错误隔了三层。我发现自己居然没法反驳。我最后发现是一个大小写问题。第二天这个方案就变成了团队标准做法

程序员的墨菲定律:演示的时候必出 bug,删掉的那段代码才是有用的。我把这个报错的堆栈从头读到尾,发现在最后一行有个提示。同事说这波操作可以写进新人培训教材