舌尖上的程序猿

清晨的第一缕阳光刚刚反射到电子屏幕之前,新一代的程序猿便开始双手敲击键盘,精神饱满地对着屏幕开始新一天的生活。他要去做回归测试,这是一种古老的习俗,是程序猿赖以生存的自我保护方式。

回归测试的意义不仅在于一种安全的预警,更在于发掘代码的特殊馈赠,以鼓舞那些正在为新需求奋斗的同类。指尖在键盘上跳跃的程序猿是朴素的一族,他们信奉祖辈团队开发的开发方式,和谐融洽。他们相信,敲击祖辈留下来的代码,能够击散那些思考着现在是不是过去想要的未来而带来的大部分忧伤。

今天这只程序猿的目的与平时稍有不同,他要去挖掘一种特殊的自然的馈赠——Bug。相较于其他原料,Bug 更像是大自然神秘而又宝贵的存在。这是一种伴随着代码诞生便存在着的拥有悠久历史的原材料,经过了数年来千百名程序猿前赴后继的追寻依然生生不息,其旺盛的生命力依旧是程序猿们夜以继日寻找挖掘的原动力。

日头很快地爬到中天,走过五百码的程序猿略微感到有些疲惫。他停下写码、调试、重构的轮回,擦了擦汗,但是他并不打算放弃。他知道 Bug 作为名贵而且稀有的存在,并不是轻而易举便能在字里行间寻见的。办公室里沉闷的空气,让他有些喘不过气,他深吸一口气之后,继续用灵敏的鼠标和和吡啦的键盘声在风里搜寻线索,生怕错过了什么。

很快程序猿便锁定了方向,因为据日志记载,有 Bug 的地方总会有坑。程序猿按下键盘,开始跳转至有声明这个坑的地方。这是一种程序猿的本能,也是程序猿一族的生存方式,为了得到这份自然的神奇馈赠——码农们写测试、通过测试、重构、实现功能代码,好似四季一样回复循环。而他们也不得不持续向他们的族长报告,因为嗷嗷待哺的等待喂养的食客们正瞪大眼睛巴巴地守候着。

一个 Bug 暴露在眼前,程序猿拉上了窗帘,因为这预示着难得换来的一个丰收的时刻,如果这是在夜晚那就更好不过了。他仿佛看到了族人欣喜的眼神,接下来他要做的,便是小心翼翼地将 Bug 采集到手,并将 Bug 出现的过程记录下来。他用特制的神器将 bug 带到指定的区域,然后剥去外部包装,漏出其本来面目,碾碎,投入热腾腾的锅中。

而事实上采集 Bug 的过程并不简单,要采集出 Bug 必须先要填好一个坑,而填坑的过程中可能会挖了更多的挖,一不小心便可能会埋葬了他们的族人。历史记载,为了填好这个坑而挖了更多让程序猿掉入坑中的先例不在少数。一般的做法是挖一些小坑,因为这些坑也许会有带来 Bug 的可能性,也就可能为族人带来更多的食材,而这些坑挖不好就会埋葬他们。但是这只程序猿不打算这样做,因为他是一个有职业操守的程序员。

一个时辰后,午后温暖的阳光洒进高楼的窗户内,程序猿的族人们听到他找到了 Bug 的消息,原先慵懒瞌睡着的他们逐渐都舒醒过来。他们从心里感到高兴,但没有流露出来。因为最新的消息传来了——族长(PM)已经更换了午餐的食谱,这也就意味着 Bug 白找了、任务白做了。他们虽然感到悲伤,却并没有十分愤怒和意外。

程序猿一族的命运便是如此,他们必须为了获得那一点点自然的馈赠,不停地寻找 Bug,不停地听需求。他们知道,需求的保鲜期只有短短的两天,他们要以最快的速度对代码进行精致的加工,任何一个需求都可能在 24 小时之后失去原本的活力,变成一文不值的垃圾创意。很快他们便会擦干汗水,默默重新拿起鼠标和键盘,前赴后继,为了生命里一种天然传承的习俗而继续努力。