什么是程序员的噩梦?
•你的代码意外对某人造成了伤害。
•因特网浏览器——如果你是网页开发工程师的话。
•需求变化——又一次。
•GitHub合并代码时出现冲突。
•不小心在错误的目录下执行了rm -rf *命令。瞬间一无所有:(
•堆栈溢出向下溢出!
•即将出现堆栈溢出现象,上网求助的时候看到一个别人发的帖子,问的问题和你想解决的一模一样,急忙点进去看,却发现这个帖子已经贴了一年了,至今无人解答。
•达到堆栈溢出的问题限制。
•错误在生产实践中才发现,无法被复制或是触发。
•错误出现的概率很低,但是又没低到可以忽略的程度。
•错误原因包括仅在轻负载情况下出现的竞态条件。
•找不到错误原因。
•导致错误的代码并不是你编写的,但是你要负责代码的修复工作;而原代码的编程人员已经辞职不干了。
•造成错误的问题是有些库在99.9%的时间里都运行稳定,而错误却藏匿在最不可能发生的地方。
•明明属于硬件错误,但是每个人都以为是软件的问题。
•多年以来有许多人都想将它调试好,但是无人成功。
•错误属于逻辑错误,在运行了很长一段时间以后才被发现。
•调试需要某一领域的专业知识,而你对此一无所知。
•通知你修复错误的最后期限,时间非常紧张。
•错误无法被忽略,因为你的工作正处于紧要关头。
•分号键不管用了。
•一年以后看到自己曾经写的没做注释的代码,一脸的懵逼:“卧槽,这特么我写的?”“卧槽,我特么咋写的?”这感觉就好像在自己的屋子里迷路了一样。
•库里居然没有文件。
•过度自信、缺乏准备、准备不足。
•“我的代码居然能正常运行,可为毛能运行?!”
•向下沟通:程序员需要了解他们正在编程的东西到底是什么,以及应该如何使用。你需要建立代码的上下文,因为当你构建某些东西的时候,会有大约100个不同的点需要你作出判断。建立上下文有助于你进行判断。
•向上沟通:开会,开会,开会……这能把程序员熬死。
•如果客户和你有时差,你还得多等一天才能和客户进行确认。
•没有文件,甚至更糟糕——有文件,但压根没用。
•格式混乱,导致你由于结构不合理,无法调试代码。
•操作系统的特定版本中出现错误,而你没有访问权,导致该程序停止响应。
•老板总想用老版本测试该程序。
•客户犯二肆意操作,导致程序无法正常运行。你根本不知道客户到底都干了什么,而你的上司则希望你第二天就修好它。