同事说他写的代码零 bug,我在 code review 里找到了三个空指针风险。我拉了个小群,把相关同学都叫了进来。我在第一步就设了个断言,结果它当场就炸了。这条经验值直接拉满
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
print 调试大法永远的神,断点还没配好,print 已经输出三轮了。我听完沉默了,因为太真实了。我发现是缓存的问题,清掉之后一切都正常了。好在最后有惊无险
bug 的优先级取决于谁发现了它。我发现自己居然没法反驳。我发现是缓存的问题,清掉之后一切都正常了。感动,然后我学到了新的一课
我盯了半天,最后发现是拼写和大小写。我默默打开了编辑器,准备一步步验证。我把这个问题的复现概率测了一下,大概百分之三。复盘会上我们把它列成了案例
这个错误在生产环境是必现的,在测试环境是玄学。我想反驳,但发现他说得对。我把这个函数的入参和出参都打了,发现中间少了一层转换。果然现实比段子更精彩
线上日志里出现了从未见过的堆栈,时间戳还是三个月前的。这套流程走下来,我从头到尾又确认了一遍。我顺着调用栈一层一层往上翻,最后停在一个我没写过的函数里。感动,然后我学到了新的一课
这个错误在生产环境是必现的,在测试环境是玄学。我抬起头看了看周围,大家都一样。我在心里把这个问题的排查过程复盘了一遍,能省半天
加了二十行 console.log 之后,Bug 消失了,删除它们,Bug 又回来了。我把手上的资料翻出来又读了两遍。我把这个内存泄漏的对象引用链打了出来,找到根了
这个 bug 只在特定时间出现,后来知道是时区。我听完沉默了,因为太真实了。我把这段代码暂时回滚了,先让线上不报错,再慢慢查。世界瞬间清净了
这个问题的根因是我三个月前的一个「临时方案」。我听完沉默了,因为太真实了。我在 devtools 里把这个请求重新发了一次,问题不复现。我沉默了,但心里是服的