程序员被戏称为“码农”,天天与程式码打交道的他们按理说应该对程式码有着深厚的感情基础,但在每个科技公司都有这样一种程式码:多数程序员们都怕遇到,有经验老码农有时候也束手无策,往往一步错、步步错,动了一小行,改上大半月。相信很多程序员都被这种程式码折磨过,就是大名鼎鼎的“祖传程式码”
与其它的“祖传”不同,其他行业的祖传说明有传统有根基、品质好信誉好,可以说是前人栽树,后人乘凉。但程式码如果挂上了‘祖传’二字就意味着无数修不完的bug了。亚马逊的工程师形容说他们的祖传程式码:“一座很大的屎山,你见过的最大的山,每次你想修正一个bug,你的工作就是爬到屎山的正中心去”。
第一次遇到“祖传程式码”
一般来说祖传程式码就是前辈留下的程式码,很多新人在刚入职的时候都会先熟悉专案程式码,在熟悉的时候肯定会碰到各种奇形怪状的程式码,各种分支进不去,各种逻辑不通,编码风格的统一。每当我们抱着疑问的态度去问那些老码农的时候,老码农也会两手一摊:“不要问我,我来的时候就这样了。”
记得第一次接受祖传程式码的时候,那个场景还历历在目
1、以前的写法真是太low了,轻松就能想到更多优质的写法,接着就开始做优化,不到2个小时,搞定;
2、哎?怎么出bug了,接着开始修复bug,用了一个小时搞定
3、一跑又出现了bug,才知道原来这里是不能用这种方式去写的,然后继续改,用了3个小时,终于搞定了
4、回头一看,写法还不如最开始的,更low了。
祖传程式码不敢轻易动
祖传程式码之所以能流传下来,真的是有其原因的,刚到公司的时候,有个著名的5000行后端js,没有面向物件封装,靠的全是函式,好几个上千行的函式,带了二十多个形参,几个标志位,分别有十几个数字状态。而且一个注释都没有。最神奇的地方在于,在执行上很少出问题。
后来来了一位技术大牛,接手这个祖传程式码之后,用了半个月的时间重写了一遍,然后出现的bug到现在都还没有改完,虽然老板没说什么,但这位大牛最后还是该bug改的辞了职。
经典的祖传程式码
相信很多人玩过魔兽这款游戏,祖传程式码就是和角色的背包有关,刚开始角色自带了16格背包,但随着游戏版本的更新,背包格子明显的不够用了,玩家们吐槽很多,暴雪也准备顺应玩家的意愿,可无奈的是,背包这行程式码不知道是谁写的,一直没找到。后来在7.3.5的更新中,暴雪终于找到了这个程式码,增加了4个背包格,但随之而来的就是一大堆数不清的bug。
当然老的互联网玩家应该知道“千年虫”,也是比较经典的“祖传程式码”。
你在工作时遇到过哪些有趣的“祖传程式码”吗?月明千里,一个敲程式码的程序员小黑,关注我,每天带你涨知识。
“我自己是一名从事了5年前端的老程序员,辞职目前在做讲师,今年年初我花了一个月整理了一份最适合2018年学习的web前端干货,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,送给每一位前端小伙伴,这里是小白聚集地,欢迎初学和进阶中的小伙伴。"
加QQ群:516156028(招募中)






























