Quora精选:码农的噩梦
英文原文:What is a coder's worst nightmare?
有国外程序员在 Quora 上提了一个问题:“程序员的最大噩梦是什么?”。本文摘编了这个问答贴的多个热门回复。
Brain Schmitz Software Engineer Intern at Google (2012, 2013), Microsoft (2014), CS major at UT Austin in Turing Scholars honors program
曾经遇到过的最恶心的 bug:
- Bug 只会出现在生产环境中,而且无法在本地重现或者触发
- Bug 出现的几率虽然很低,但并不足以忽略掉它
- Bug 出现的原因和竞态条件(race condition)有关,这只会在系统低负载时才出现
- Bug 出现的真正原因还未知
- 出现 bug 的代码并不是你编写的,但是你要负责修复它;写那段代码的人已经不在公司了
- 导致出现 bug 的是某个库,而这个库在 99.9% 的情况下都是可靠的。这是你解决该问题所剩的最后一块阵地了。
- 多年以来有许多人试图调试它,从没人成功过。
- Bug 会产生一个逻辑错误,而且只会在系统运行了很长一段时间后才会出现
- 调试需要你了解某个特定的领域知识,而你对那个领域却一无所知
- 解决 bug 的最后期限非常紧,时间不多了
- 不能忽略这个 bug,因为你的饭碗能否保住就看它了
想象一下在地球上通过光脉冲信号调试火星探测器上的一个竞态条件是多么令人恶心的一件事,更绝的是只有在火星的大气条件下当行星开始对齐时才会 发生。这一切都是因为某个从 NASA 离职多年的人所编写的库中生成的嵌入式代码出现了一些微妙而深奥的问题所导致。你必须尽快解决这个问题,因为下一次行星对齐就快开始了,而几百万美元的项 目资金面临打水漂的风险。
不,我所说的这一切从未发生过。但是看了上面那些你难道不想从桥上跳下去吗?:)
Jarmo Dee
上面那些都不算啥。码农最糟糕的噩梦是有一个不合格的、非技术出身的项目经理,把时间点定的非常紧,而且总是想掌管一切。
Colin Song
需求变更,恩,是再一次变更。
Jim Bobrien
老板决定修改产品定位的方向,而且认为所有的修改都会很简单,并且在没有和技术团队沟通过的情况下就向客户做出了种种承诺。哦,对了,还有需要支持 IE 浏览器。
Lalit Jain
同样的代码周五还跑的好好的,周一就不行了 :D
Shivam Sarawagi
Internet Explorer (如果你是 Web 开发者)
Jorge Lrun
到 StackOverflow 上提问,看到 1 年前有人发过和你准备问的一模一样的问题,但是没有任何回复..
Ben Joseph
Stack Overflow 访问不了!
Naman Dasot
分号键坏了 :(