祖传代码成「屎山」了,千万别动
Posted 非著名程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了祖传代码成「屎山」了,千万别动相关的知识,希望对你有一定的参考价值。
上面这个公号「涩郎」,是我的一个备用号,为了防止万一哪天大号失联,平时一周我也会发三篇左右的我的思考,读书笔记,认知感悟等文章,带领大家一起探索精神与财务自由之路。
大家好,我是校长。
我看有人问了这么一个问题:为什么程序员会有代码能跑就不要动的观点?
这个问题还是很有代表性,而是是非常有意思的一个问题,我从「代码系统生态学」(我自己造的一个词)给大家回答了一波。
如果代码能跑,最起码说明程序目前没有问题,而且是经过测试人员测试过的。
既然能跑,也不影响项目运营的代码,你感觉有必要改么?
很多程序员肯定经历过这样的事情,比如:你刚接手了一个项目,而项目的代码风格可能跟你的代码风格不太一样,亦或者感觉对方写的代码太乱,不简洁,忍不住动手就去改了。
然后呢?改了之后,发现出问题了,然后又开始连夜熬夜改 bug,改了一晚上,感觉改回去了,咋还是有问题呢?rollback 好像都失效了。
有了这个教训之后,很多程序员再也不会乱改代码了,尤其是那种祖传代码,年久失修的代码,更不敢动。
为什么?从「代码系统生态学」(我自己造的一个词)上来讲,要想动能够正常运行的老代码,尤其是你作为一个新人,不知道整体的业务逻辑和目标以及内部很多细节的话,你可能就仅仅就是代码生态上的一小环,就感觉自己稍微改了一下,可能会影响整个系统生态的稳定。
《狼图腾》这本书大家都看过吧,这本书讲的是草原上打狼的故事:在盛行打狼的年代,流行着一个京剧唱段,“打不尽豺狼,绝不下战场”,就有一些人认为,狼是草原人的天敌,它给人造成了太多祸害,要想过上好日子,必须要把狼消灭。
草原上当地的老人说 “狼是草原的守护神,你们打了会遭到天谴的”,但有志有为的年轻人只会把这么充满迷信色彩的话当成笑话。他们开始用大运动的方式打狼,一直打到都没有狼了,就开始挖狼窝,把刚刚出生的小狼崽也消灭。他们以为这样做了就会赢得大胜利大成功,但接下来发生的事情大出他们所料。
首先,狼被消灭以后,草原上发生了兔灾。兔子繁殖速度非常快,当兔子数量以几何级数增加时,它们一方面和羊抢草吃,更要命的是,兔子窝非常隐秘,牧羊人牵着马或者骑着马经过的时候,马不小心踩到兔子窝,就会陷进去骨折。骨折的马就没用了,只能杀掉。
其次是獭灾。没有了狼,旱獭的数量也以几何级数增加。和兔子窝不同,旱獭的洞是隧道式的,它把大量的草弄到洞里过冬保暖,这样一来,天一冷,大量的蚊子就钻进了旱獭的洞里。显然,蚊子的数量也是几何级数增长的,多一只蚊子,来年就会多许许多多的蚊子,所以,在兔灾、獭灾之后,就是蚊灾。马身上镶盖了一层毯子式的蚊子,很多马的血被吸干,倒下了。
兔灾、獭灾、蚊灾还都只是灾难的序曲。
过去,牧羊人白天出去放羊,需要骑着马拿着套马杆时时刻刻巡视提防狼,累了一天回家就倒头大睡,而草原上的妇女则几乎一晚上不睡觉地看着羊圈,防止狼吃羊 —— 这种生活方式无意中抑制了草原人口的增长。但狼没有了之后,牧羊人白天躺在草地上睡大觉就够了,妇女们晚上也不用看着羊圈了,于是在短短几年内,草原人口迅速增加。
人口增加导致畜牧业不足以养活当地人,他们就开始用农业的方式 —— 以较少的土地面积来养活更多的人。但是,草原上纬度高,土层薄,冬天风很大,土地很快沙化,草原人只好继续开荒,以至于后来草原上像长了牛皮癣似的沙地越来越多。这时候,他们才明白老人说的那句话:狼是草原的守护神。
《狼图腾》的故事告诉我们:大自然里有另外一种算法和规则。
同样的道理,代码系统生态当中也有另外你不为人知的算法和规则,就像是草原上当地的老人说 “狼是草原的守护神,你们打了会遭到天谴的”,但有志有为的年轻人只会把这么充满迷信色彩的话当成笑话一样。
程序员千万别当草原上的年轻人,动不动就像修改一下能够运行的祖传代码。
其实,我们目前看到的任何一个系统,任何一个软件,乃至正常运行的一机器,它都是由各个功能组合而成的,之所以能正常运行就说明各个功能之间,各个部门之间是相互平衡,相互协调运作的,你如果不知道整体,亦或者遇到问题,改 bug ,只知道从局部去「堵」,而不知道从整体去「疏」,基本上就无法平衡整个系统,可能只是改了一个小地方,一个小局部,都极有可能引发整个系统崩溃。
堵不如疏,大禹治水也是这个道理。
bug,改,其实可以,但是,你改的前提是:要了解整个代码系统生态,整体的代码业务逻辑,以及你要修改的代码部分的具体功能,当你从全局看,在切入到局部的时候,可能你会发现:原本运行的代码,是有道理的,而不会认为自己比别的程序员聪明,就不会乱改别人的代码了。
其实,不管是程序,还是生活,还是工作,不管我们面对的是人生 bug,还是程序 bug,都是需要利用系统生态学原理去解决,才能获得长治久安,才能获得长期的收获。
点击下方公众号卡片,关注我
在公众号对话框,回复关键字 “1024”
免费领取副业赚钱实操教程
以上是关于祖传代码成「屎山」了,千万别动的主要内容,如果未能解决你的问题,请参考以下文章
12 年的祖传“屎山”代码,年收入竟超 1.4 亿元?程序员劝“接盘侠”:赶紧退退退!...
12 年的祖传“屎山”代码,年收入竟超 1.4 亿元?程序员劝“接盘侠”:赶紧退退退!...
12 年的祖传“屎山”代码,年收入竟超 1.4 亿元?程序员劝“接盘侠”:赶紧退退退!...