print 调试大法永远的神,断点还没配好,print 已经输出三轮了。我笑了笑,决定不解释。我在关键路径上打了十几个日志,一行一行对时间戳。这条经验值直接拉满

复现不了的 bug 最消耗人,因为你连敌人是谁都不知道。我想了想,觉得这话没法接。我在心里默默记下这个坑,写进了自己的检查清单

我在本地复现了十次,第十一次它变了样子。我盯着屏幕,觉得这才是我的一天。我发现是序列化的问题,字段名大小写在两端口径不同。从此我多了一条团队规约

这个空指针在上线前一切正常,因为那时没有空数据。我笑了笑,决定不解释。我加了个 try-catch,先把异常吞掉,回头再查根因。我把它写进了组内的避坑文档第一章

这个 bug 的修复方案有两版,简单的那版风险更大。我把它记在心里,没跟任何人说。我发现是并发导致的,单线程下它一直是好的。同事说这波操作可以写进新人培训教材

同事说他写的代码零 bug,我在 code review 里找到了三个空指针风险。我把手上的资料翻出来又读了两遍。我发现这个接口在特定参数组合下返回了空对象。真香定律准时生效

bug 的优先级取决于谁发现了它。我笑了笑,决定不解释。我把这个 bug 的修复方案写了两版,选了改动小的那版。从此我多了一条团队规约

报错信息说问题在第 1024 行,那个文件一共 1023 行。我想了想,觉得这话没法接。我在心里默默记下这个坑,写进了自己的检查清单。我把它写进了组内的避坑文档第一章

bug 的优先级取决于谁发现了它。我叹了口气,然后打开了编辑器。我把变量全部打印出来对比,发现类型和我想的完全不一样。办公室安静得能听见键盘声

我把这个堆栈从头读到尾,关键信息在最后一行。我打开记录从头到尾扫了一遍。我把这个问题的复现概率测了一下,大概百分之三。办公室安静得能听见键盘声