程序员的 13 种噩梦,你遇到过哪些?

2015-09-10 10:44


对绝大多数人来说,都是些老生常谈的东西使他们噩梦连连:幽灵、蜘蛛,被戴着冰球面具的杀人狂追杀……但对另一些人来说,他们最害怕的东西就没那么常见了。

就拿软件开发者举例吧。如果你问他什么才是最可怕的噩梦,那么答案很可能跟女巫、黑猫没什么关系,真正的噩梦是关键的分号不起作用或者微软的某个产品。在分析了各种各样程序员关注的论坛之后,我们在此列举出 13 种程序员们最苦恼的噩梦。

1.我能通过互联网解决问题

Stack Exchange 一类的网站已成为软件开发者的工具箱中至关重要的工具。当然也还有很多其他程序员们寻求帮助的论坛。程序员最头疼的事,就是貌似无穷的知识来源中其实并没有解决你问题的答案。

“在 Stackoverflow 网站看到有人发了同样的问题,然而逛了半天也没找到答案。”—— Jorge Irun

(漫画由 伯乐在线 - 轻如纸张 翻译,来自《吐槽编程问题的五张漫画》)

某论坛上点赞最多的答案毫无用处!”—— Ramchand Rajasekaran

2.键盘上最重要的按键坏了

不难想象,键盘对于开发人员有着不言而喻的重要性。但同样地,在开发人员眼中并非所有按键都那么重要。尤其是在一些编程语言中,某些按键比其他按键的使用频率更高,例如 JavaScript、Perl 和 Objective-C 中的分号键。为了节约时间和避免错误,开发人员爱用键盘的快捷方式,比起鼠标,键盘的使用则更频繁。若是软件开发者梦到键盘上他最爱用的按键坏了甚至消失了,就深更半夜里冒着冷汗惊醒,你也不必觉得惊讶。

“我做过最糟糕的噩梦就是分号键坏了。”—— Ali Akbar

敲了 n 行代码后才发现 Control 键没反应……”—— Nikesh Shetty

3.网络连不上,或者掉线了

一种比较“小众”的噩梦是,某一工具的论坛下线或是出于维护状态从而不能解决问题,但更常见的是访问互联网时掉线,无法接入站点。因为毕竟除了访问论坛这一目的意外,网络更像一个巨大的象鼻,里边装满了有用的东西,比如代码段、开源软件。如果互联网突然掉线了,就会造成编程团队间无法联系,你喜欢的在线音乐播放服务无法使用,更不用说接入远程服务或是云端有多困难……如果你想吓唬吓唬程序员,大喊一声“没有网络”就够了。记得,随时准备好除颤器以便急救。

如果某天互联网和谷歌都消失了,那将倒退回与世隔绝、暗无天日的古代。遇到 bug 我们只能束手无策。”—— Thoriq Firdaus

4.无法再现的危险错误

为了修复一个漏洞,在这之前开发人员必须在开发或测试环境中重现导致错误的情境。如果你够幸运的话,在开发环境部署前就能诊断、修复错误。许多开发人员害怕随机出现又无法在受控环境中重现的漏洞。这类该死的漏洞会让你在重要客户的面前变得忧心忡忡,坐立不安。这绝对是程序员的噩梦。

“只在众人或重要客户面前演示时才出现的漏洞,简直让我……” —— Jeremy Friesner

“在公司时蓝屏现象从不会出现第二次,然而一到客户家里就老出现。” —— Joe Wezorek

5.缺失好的文档,甚至没有文档

坐下来理解一段没有良好文档或注释的已有代码是很困难的。若是连文档或注释都没有,那就更糟了。这情况不仅适用于由承继程序员的第三方编写的代码,还适用于同一个程序员在很久以前写的缺少良好文档的代码。不管是谁切分的不带说明文档的代码永远是个噩梦。

“毫不夸张地说,维护没有开发文档的旧软件对我而言就是个噩梦。”—— Sam Sartor

6.糟糕的老板和主管

和其他人一样,开发人员也会有爱管闲事又没啥能力的上司。软件开发者尤其讨厌随意干涉他们代码的非技术管理层。有些领导喜欢承诺我们无法做到的事,低估项目中切分代码所需的时间。一想到这样的领导和技术决策人,程序员即使在深夜的梦里也会痛哭。

“对我而言最糟糕的非经理莫属,比牙疼还糟糕。他们自视甚高,还期待我们能提早地满足客户的任何需求。这些所谓的经理还坚信,编程只是小事一桩,代码就像浮在空气中似的,可以信手拈来。” —— Rachit Agrawal

7.他人清晰又漂亮的代码

对大多数程序员来说,他们喜欢也必须在别人的代码上继续工作;但别忘了,不同的定时器代码永远不会一模一样,不是吗?甚至是一段有良好文档的第三方代码也会变成一件麻烦事。它要求你做调试,重构,或结构化,使代码适应可能几个月前就已切分好的代码。这些工作会让程序员们心跳异常。若没有,真是谢天谢地。

8.项目里的要求变更

无论何时,软件开发者都青睐那些阐述清晰、不能变更的应用需求。在实践中,很多需求都是匆忙制定的,有时候甚至已经成为了正式形式;要求变更的原因,一部分是有糟糕的项目经理,另一部分则是来自上级或客户本身的抱怨和干涉。总之,不论什么原因,对需求变更的恐惧——尤其是在最后一分钟要求变更——永远是开发者的心头恨。

9.消失不见的代码

无论开发者花了多长时间来调度软件,如果代码被意外清除了,一切努力都将付诸东流。代码意外消失的原因有许多,最主要的是鬼使神差地忘记保存文件,或者未知的恶意漏洞导致无法保存。无论出于什么原因,不管是不是考虑不周,程序员永远都害怕花了大量时间精力才得出的算法和函数毁于一旦。

10.IE 浏览器

程序员常常会对某些技术忍无可忍。举个例子,Web 开发人员对用 IE 做开发感到万分恐惧。尽管它仍是最受欢迎的浏览器之一,IE 对于Web 开发者就是噩梦。糟糕的是,比起现代、环保的新版本,旧版本的 IE 不友好,用户多,还需要更多支持。如果说电影“13号星期五”中杀人狂 Jason Vorhees 吓倒了一众Web 开发者的话,他的面具恐怕就是 IE 图腾。

11.身体不适

编程不是个体力活儿,但正如其他需要没日没夜地在计算机上切分数据的职业那样,胳膊、手掌、指头不灵便都很难完成这项工作。任何对视力、理性思考能力有消极影响的因素,都会成为大麻烦。因此,软件开发者的典型噩梦是:无法使用,甚至丧失了身体的某一或某些重要部位——个人伤害律师(Personal injury lawyer) Baca Raton 如是说。

12.我的漏洞伤害了他人

任何软件开发者都会成为漏洞的制造者。但并非所有的漏洞都具有同等的灾害性。其中一些漏洞讨人厌但无害,另一些则会给公司或客户带来损失,负责开发的人员会被开除。不过最坏的情况是,漏洞造成了生理上的伤害,甚至危及他人的生命安全。

13.段错误

程序员中普遍害怕的噩梦还有遭遇段错误。这一错误由内存违法访问而引发。也就是说,程序企图访问受限的内存,或者执行某个受限的行为。一般而言,在这种情况下访问内存单元将通知操作系统,进而反过来通知有问题的,大多数以挂马程序为结束的进程。开发人员最头痛的就是要找到引发这一问题的原因。因此,程序员的噩梦里还有段错误。