对绝大多数人来说,都是些老生常谈的东西使他们噩梦连连:幽灵、蜘蛛,被戴着冰球面具的杀人狂追杀……但对另一些人来说,他们最害怕的东西就没那么常见了。
就拿软件开发者举例吧。如果你问他什么才是最可怕的噩梦,那么答案很可能跟女巫、黑猫没什么关系,真正的噩梦是关键的分号不起作用或者微软的某个产品。在分析了各种各样程序员关注的论坛之后,我们在此列举出 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.段错误
程序员中普遍害怕的噩梦还有遭遇段错误。这一错误由内存违法访问而引发。也就是说,程序企图访问受限的内存,或者执行某个受限的行为。一般而言,在这种情况下访问内存单元将通知操作系统,进而反过来通知有问题的,大多数以挂马程序为结束的进程。开发人员最头痛的就是要找到引发这一问题的原因。因此,程序员的噩梦里还有段错误。
推荐阅读:
为什么程序员有高薪却不高兴?
程序员如何持续提升自己的开发技能