1947年9月9日,美国海军准将Grace Hopper在哈佛学院计算机实验室里使用MarkII和MarkIII计算机进行研究工作。她的团队跟踪到MarkII上的一个错误,操作人员发现是由于一只飞蛾钻到了MarkII的继电器里导致的。
团队清除了这只飞蛾,一切恢复正常。当时的工作人员记录了这样一句日志:“First actual case of bug being found.”这次著名的事件,犹如潘多拉打开了魔盒,从此,程序员的世界里,bug满天飞。
▲世界上第一个bug
一、趣谈:如何为bug找借口?
在我所担任过的角色中,有一个岗位叫做Development Manager,通常简称DM。记得在一次基于一款平台的二次开发项目中,因为bug实在太多,我们几乎拿出了一整个里程碑的周期来debug,于是我这个DM有了新的解释:Debug Man。
没有人喜欢bug,bug意味着错误、不确定性、加班、交付风险……负面的词语怎么堆砌都不冗余。随便找个有过一、两个项目经验的开发者,问问他debug的回忆,那气氛就跟上坟一样。
对于bug,开发者的神经往往也很敏感。有个段子很有趣——说的是“应该如何向程序员反馈一个bug?”
你不能直接跟他说:“这里不对啊,是不是你程序有bug啊?”,要这么说的话,会直接被怼回来:“你丫的自己不会用吧!”。
你可以换个说法:“咦,这里好像不对,是我操作错了吗?”,这时程序员心里就一咯噔:“Shit…不会是我代码有bug吧?”
从业多年,发现有个现象还蛮有趣的:有时候,当某个bug被发现时,犯下这个错误的始作俑者会开玩笑地为自己解脱:“谁没写过bug啊,Windows还有bug呢。”这句托词我也用过,感觉挺好用的,就好比:梅西都能罚丢点球,我空门没进,也是可以理解的嘛。
但其实吧……这逻辑经不起推敲的。
Windows操作系统,一款长达3