对于程序猿来说最为糟糕的噩梦是什么?- Quora

程序猿所喜(疯)闻(狂)乐(吐)见(槽)的二三事,另外Quora是个不错的Q&A型网站,溪木本人也在上面得到过很好的回答呢。高兴的译者溪木敬上,还请各位大大斧正~XD(PS:翻译到后面才发现这文章的专业内容好多啊QvQ,我尽量用了浅显的语言来表达,下次我再也不做死了QvQ)

我让《纽约时报》的首页崩溃过一次。

我读得书多不会骗你。

是这样的,我在一家网上销售汽车的公司里工作,我们和《纽约时报》有着经营合同,然后有一天我们接到了一个电话,电话那头的《纽约时报》相当地愤怒,因为他们的网站炸了,而且据他们的追踪表明,爆炸的原因来自于我们这边。然后我们就花了神TM多的时间来搞清楚导致崩溃的原因,因为这种崩溃貌似是会玩的,它说不清楚什么时候就来一次。网站开始坏掉,我们重启它们,然后正常一段时间,然后变慢变慢.....然后再一次坏掉。它在一个设定好的时间周期内没有发生崩溃。它在你对它进行某些具体操作的时候没有发生崩溃。但这破事儿就是发生了。就算你闪避点满也没,它就是这么会玩。

在这么持续了几个小时以后(在有一个活生生的崩溃BUG横在你面前的时候你就别想回家了骚年),我突然意识到了所发生的一切的根源所在,并且在瞬间我的脸上布满了死线,啊...貌似...错的不是世界,而是我。在一个不重要的副页上,我做了一个不重要的改动,所有老司机级别的程序猿在看到这种改动以后一定都会沮丧扶额,心中默念图样图森破:我让程序运行中的数据永远地冗杂在了一个小小的角落里。

然而事实不全是这样啊天。他们的数据库早就受损了。(所以说他们也有责任哼)。而我的代码编程只是去获取它所需要的数据,然后就进入待命状态,直到它获得下一步行动所需的代码。所以我的代码宝宝就在那坐着,瞪着俩眼以求获得那份永远得不到的数据,然后进入装死状态,然后再问,再装死,再问,再装死,除此之外你啥都得不到,因为你要知道代码编程运行也要按照基本法,你告诉这个宝宝去做的事情它就会不停地去做,除非某些条件得到了满足。然而这是个特殊的宝宝,它在这份报纸不同页面上的侧边栏上都有相关的程序在运作,所以每当有人加载完他的页面时,另一个不同的代码就跳出来索取它所需要的数据。它们就这样不停地冗杂,冗杂,并且从不会清理掉堆积如山的数据,直到量变产生质变,服务器堆满溢出,网站就崩掉了。

我重写了代码,让它能够在开始处理数据前检查一下是否有先前囤积下来的数据垃圾,为了让它能更快地投入使用,我们重启了服务器,问题也被很好地解决了。嗯从那开始我就再没有可以信任的代码宝宝了,那都是群熊孩子。