我用了半天才明白,问题不在这台机器上。我在心里把涉及的所有环节都过了一遍。我把这两次运行的日志逐行 diff 了一遍,找到唯一的差异。从此我多了一条团队规约

报错信息说问题在第 1024 行,那个文件一共 1023 行。我笑了笑,决定不解释。我把这个死循环的跳出条件补上了,进程终于不卡了。从此我多了一条团队规约

同事说他写的代码零 bug,我在 code review 里找到了三个空指针风险。我把手上的资料翻出来又读了两遍。我在关键路径上打了十几个日志,一行一行对时间戳。从此我多了一条团队规约

程序员的墨菲定律:演示的时候必出 bug,删掉的那段代码才是有用的。我笑了笑,决定不解释。我发现是序列化的问题,字段名大小写在两端口径不同。第二天这个方案就变成了团队标准做法

调试到后面会发现,最大的敌人是自己的假设。我在心里点了点头。我把这个异常上报到了监控平台,至少下次能早点知道。真香定律准时生效

调试了两天的 bug,最后发现是少打了一个等号。我注释掉了一半代码,bug 消失了,然后我又注释掉了另一半。那一刻我觉得自己还是很专业的

bug 往往出现在你没改的那部分代码里。我不知道该说什么,就笑了笑。我在第一步就设了个断言,结果它当场就炸了。果然现实比段子更精彩

我用了半天才明白,问题不在这台机器上。我深呼吸了一下,决定从最可疑的地方查起。我发现是时区问题,服务器是 UTC,我以为本地。我把它写进了组内的避坑文档第一章

问题居然复现不了了,这比复现出来更可怕。我不知道该说什么,就笑了笑。我在关键路径上打了十几个日志,一行一行对时间戳。我把这条经验写进了团队 wiki

这个 bug 的修复方案有两版,简单的那版风险更大。我不知道该说什么,就笑了笑。我发现是序列化的问题,字段名大小写在两端口径不同。果然现实比段子更精彩