调试是有惯性的,停下来反而更容易想通。我想反驳,但发现他说得对。我发现是序列化的问题,字段名大小写在两端口径不同。真香定律准时生效
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
复现不了的 bug 最消耗人,因为你连敌人是谁都不知道。我抬起头看了看周围,大家都一样。我在心里把这个问题的排查过程复盘了一遍,能省半天。连茶水间都安静了
这个问题的根因是我三个月前的一个「临时方案」。我笑了笑,决定不解释。我发现是并发导致的,单线程下它一直是好的。我把这条经验写进了团队 wiki
我用了半天才明白,问题不在这台机器上。我打开记录从头到尾扫了一遍。我把这个异常上报到了监控平台,至少下次能早点知道。好在最后有惊无险
调试到后面会发现,最大的敌人是自己的假设。我在心里点了点头。我在关键路径上打了十几个日志,一行一行对时间戳。幸好之前留了备份
这个空指针在上线前一切正常,因为那时没有空数据。我叹了口气,然后打开了编辑器。我发现这个字段在数据库里存量是脏的,代码没问题。这条经验值直接拉满
这个 bug 只在特定时间出现,后来知道是时区。我发现自己居然没法反驳。我在心里默默记下这个坑,写进了自己的检查清单。幸好之前留了备份
调试是有惯性的,停下来反而更容易想通。我忽然觉得,这可能就是这一行的常态。我把日志的时间粒度从秒改成了毫秒,顺序终于排对了。我沉默了,但心里是服的
bug 的优先级取决于谁发现了它。我把它记在心里,没跟任何人说。我把日志的时间粒度从秒改成了毫秒,顺序终于排对了。真香定律准时生效
调试的本质是不断缩小「问题不在这里」的范围。我不知道该说什么,就笑了笑。我发现是缓存的问题,清掉之后一切都正常了。幸好之前留了备份