程序员的最大噩梦是什么?
(点击上方蓝字,可快速关注我们)
有国外程序员在 Quora 上提了一个问题:“程序员的最大噩梦是什么?”。陈舸摘编了这个问答贴的多个热门回复。
Brain Schmitz 的回复
(漫画由 伯乐在线 - 轻如纸张 翻译)
曾经遇到过的最恶心的bug:
-
Bug只会出现在生产环境中,而且无法在本地重现或者触发
-
Bug出现的几率虽然很低,但并不足以忽略掉它
-
Bug出现的原因和竞态条件(race condition)有关,这只会在系统低负载时才出现
-
Bug出现的真正原因还未知
-
出现bug的代码并不是你编写的,但是你要负责修复它;写那段代码的人已经不在公司了
-
导致出现bug的是某个库,而这个库在99.9%的情况下都是可靠的。这是你解决该问题所剩的最后一块阵地了。
-
多年以来有许多人试图调试它,从没人成功过。
-
Bug会产生一个逻辑错误,而且只会在系统运行了很长一段时间后才会出现
-
调试需要你了解某个特定的领域知识,而你对那个领域却一无所知
-
解决bug的最后期限非常紧,时间不多了
-
不能忽略这个bug,因为你的饭碗能否保住就看它了
想象一下在地球上通过光脉冲信号调试火星探测器上的一个竞态条件是多么令人恶心的一件事,更绝的是只有在火星的大气条件下当行星开始对齐时才会发生。这一切都是因为某个从NASA离职多年的人所编写的库中生成的嵌入式代码出现了一些微妙而深奥的问题所导致。你必须尽快解决这个问题,因为下一次行星对齐就快开始了,而几百万美元的项目资金面临打水漂的风险。
不,我所说的这一切从未发生过。但是看了上面那些你难道不想从桥上跳下去吗?:)