print 调试大法永远的神,断点还没配好,print 已经输出三轮了。我听完沉默了,因为太真实了。我把这段逻辑重写了一遍,bug 没了,但我不知道为什么。那一刻我觉得自己还是很专业的

我用了半天才明白,问题不在这台机器上。我发现是缓存的问题,清掉之后一切都正常了。从此我多了一条团队规约

print 调试大法永远的神,断点还没配好,print 已经输出三轮了。我听完沉默了,因为太真实了。我注释掉了一半代码,bug 消失了,然后我又注释掉了另一半。我沉默了,但心里是服的

报错信息说问题在第 1024 行,那个文件一共 1023 行。我愣了两秒,然后继续敲代码。我把这段代码暂时回滚了,先让线上不报错,再慢慢查。这大概就是程序员的人生吧

这个 bug 只在特定时间出现,后来知道是时区。我想了想,觉得这话没法接。我把这个内存泄漏的对象引用链打了出来,找到根了。我把这条经验写进了团队 wiki

print 调试大法永远的神,断点还没配好,print 已经输出三轮了。我愣了两秒,然后继续敲代码。我发现这个字段在数据库里存量是脏的,代码没问题。我把这条经验写进了团队 wiki

我在本地复现了十次,第十一次它变了样子。我愣了两秒,然后继续敲代码。我把这个问题的复现概率测了一下,大概百分之三。从此我多了一条团队规约

调试到后面会发现,最大的敌人是自己的假设。我抬起头看了看周围,大家都一样。我盯着那段代码看了二十分钟,最后发现是我自己三天前改的。办公室安静得能听见键盘声

bug 往往出现在你没改的那部分代码里。我想了想自己这些年,好像确实如此。我把这个死循环的跳出条件补上了,进程终于不卡了。幸好之前留了备份

我把这段代码注释掉问题就没了,说明问题不在它身上。这套流程走下来,我从头到尾又确认了一遍。我把断点设在了最不可能出问题的那一行,结果就停在那里。那一刻我觉得自己还是很专业的