程序猿的终极噩梦,祖传代码,一动,修半年

“祖传代码,轻则伤筋动骨,重则一命呜呼”

程序猿的终极噩梦应该是祖传代码了吧。

很多码农小萌新们,都经历过这样的时刻吧。矜矜业业检查前人代码时,发现了明显到觉得智障的漏洞,认真的你准备大刀阔斧地修改,但你的老司机同事可能会劝你最好不要动,并露出意味深长的表情。

因为他们知道,你遇到了祖传代码。

什么是祖传代码?

祖传代码(legacy code),就字面意思而言,就是老程序猿留下“宝藏”代码。可能当初写代码的人早就离开了,但代码逻辑混乱又无注释,后人完全看不出来写的是个啥!

要么就是前人写下的时候就不完美,历经许久,业务需求也变了,随便一动就到处是问题。

比如,你可能会遇到这样的代码:

//add by xxxx 201x-x-x:

这是一段神奇的代码。。反正这么写就对了。

几乎每家公司的代码都有“历史遗留问题”,而越是大公司,情况越严重。

亚马逊的工程师形容他们的代码:“一座很大的屎山,你见过的最大的山,每次你想修正一个bug,都得爬到屎山的正中心去”。

最最可怕的是,有些祖传代码,你一动, 就再也回不去了。

用这张图再形象不过了👇
在这里插入图片描述

驾驭屎山的唯一方法,不是重构,而是不重构。

为什么有人可以在屎山里加功能?

很简单:
把屎山扒拉开,每块闻一闻,找出和你要改的功能对应的那坨屎,把这坨屎包起来

(封装),你就可以假装它不是屎,是巧克力。然后,在旁边拉一泡新的屎,等它风干成型

(测试通过)就可以收工了。

当然,怎样优雅地在一座屎山里闪转腾挪,做到“百屎丛中过,片屎不沾身”,还是需要很多经验

和技巧的。不过说白了,就算失误了摔个嘴啃屎,臭也只臭你程序员一个,老板还觉得你很努

力,客户还觉得真香。很多愣头青觉得自己是天才,可以把屎山重构了。他们中的大部分人引

发了屎崩,永远埋在了几千米高的屎山之下。极少数人活了下来。他们真的做到了,他们真的

重构了整座屎山!

重构之后的那个东西,被后人称为——屎山2.0。

尿海不择细流,故能成其大;屎山不拒细壤,方能就其高。屎山就这样一天天长大,终于令最

后接手的码农感叹:高山仰止,景行行止。其实,屎山,是任何复杂系统的终极归宿。无论你

使用何种语言,师从什么流派,哪怕23种设计模式样样精通,最终还是会踏上前往屎山的道

路。因为,条条大路通屎山。

最后

针对祖传代码,我总结一下我的人生感悟,就是四个大字:

你看完上面的建议,是不是以为这四个字是“愚公移山”啊?

哈哈哈,不是的,是

“精卫填海”
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值