祖传代码成「屎山」了,千万别动

文章首发于微信公众号「非著名程序员」,欢迎大家关注。

大家好,我是校长。

我看有人问了这么一个问题:为什么程序员会有代码能跑就不要动的观点?

这个问题还是很有代表性,而是是非常有意思的一个问题,我从「代码系统生态学」(我自己造的一个词)给大家回答了一波。

如果代码能跑,最起码说明程序目前没有问题,而且是经过测试人员测试过的。

既然能跑,也不影响项目运营的代码,你感觉有必要改么?

很多程序员肯定经历过这样的事情,比如:你刚接手了一个项目,而项目的代码风格可能跟你的代码风格不太一样,亦或者感觉对方写的代码太乱,不简洁,忍不住动手就去改了。

然后呢?改了之后,发现出问题了,然后又开始连夜熬夜改 bug,改了一晚上,感觉改回去了,咋还是有问题呢?rollback 好像都失效了。

有了这个教训之后,很多程序员再也不会乱改代码了,尤其是那种祖传代码,年久失修的代码,更不敢动。

为什么?从「代码系统生态学」(我自己造的一个词)上来讲,要想动能够正常运行的老代码,尤其是你作为一个新人,不知道整体的业务逻辑和目标以及内部很多细节的话,你可能就仅仅就是代码生态上的一小环,就感觉自己稍微改了一下,可能会影响整个系统生态的稳定。

《狼图腾》这本书大家都看过吧,这本书讲的是草原上打狼的故事:在盛行打狼的年代,流行着一个京剧唱段,“打不尽豺狼,绝不下战场”,就有一些人认为,狼是草原人的天敌,它给人造成了太多祸害,要想过上好日子,必须要把狼消灭。

草原上当地的老人说 “狼是草原的守护神,你们打了会遭到天谴的”,但有志有为的年轻人只会把这么充满迷信色彩的话当成笑话。他们开始用大运动的方式打狼,一直打到都没有狼了,就开始挖狼窝,把刚刚出生的小狼崽也消灭。他们以为这样做了就会赢得大胜利大成功,但接下来发生的事情大出他们所料。

首先,狼被消灭以后,草原上发生了兔灾。兔子繁殖速度非常快,当兔子数量以几何级数增加时,它们一方面和羊抢草吃,更要命的是,兔子窝非常隐秘,牧羊人牵着马或者骑着马经过的时候,马不小心踩到兔子窝,就会陷进去骨折。骨折的马就没用了,只能杀掉。

其次是獭灾。没有了狼,旱獭的数量也以几何级数增加。和兔子窝不同,旱獭的洞是隧道式的,它把大量的草弄到洞里过冬保暖,这样一来,天一冷,大量的蚊子就钻进了旱獭的洞里。显然,蚊子的数量也是几何级数增长的,多一只蚊子,来年就会多许许多多的蚊子,所以,在兔灾、獭灾之后,就是蚊灾。马身上镶盖了一层毯子式的蚊子,很多马的血被吸干,倒下了。

兔灾、獭灾、蚊灾还都只是灾难的序曲。

过去,牧羊人白天出去放羊,需要骑着马拿着套马杆时时刻刻巡视提防狼,累了一天回家就倒头大睡,而草原上的妇女则几乎一晚上不睡觉地看着羊圈,防止狼吃羊 —— 这种生活方式无意中抑制了草原人口的增长。但狼没有了之后,牧羊人白天躺在草地上睡大觉就够了,妇女们晚上也不用看着羊圈了,于是在短短几年内,草原人口迅速增加。

人口增加导致畜牧业不足以养活当地人,他们就开始用农业的方式 —— 以较少的土地面积来养活更多的人。但是,草原上纬度高,土层薄,冬天风很大,土地很快沙化,草原人只好继续开荒,以至于后来草原上像长了牛皮癣似的沙地越来越多。这时候,他们才明白老人说的那句话:狼是草原的守护神。

《狼图腾》的故事告诉我们:大自然里有另外一种算法和规则。

同样的道理,代码系统生态当中也有另外你不为人知的算法和规则,就像是草原上当地的老人说 “狼是草原的守护神,你们打了会遭到天谴的”,但有志有为的年轻人只会把这么充满迷信色彩的话当成笑话一样。

程序员千万别当草原上的年轻人,动不动就像修改一下能够运行的祖传代码。

其实,我们目前看到的任何一个系统,任何一个软件,乃至正常运行的一机器,它都是由各个功能组合而成的,之所以能正常运行就说明各个功能之间,各个部门之间是相互平衡,相互协调运作的,你如果不知道整体,亦或者遇到问题,改 bug ,只知道从局部去「堵」,而不知道从整体去「疏」,基本上就无法平衡整个系统,可能只是改了一个小地方,一个小局部,都极有可能引发整个系统崩溃。

堵不如疏,大禹治水也是这个道理。

bug,改,其实可以,但是,你改的前提是:要了解整个代码系统生态,整体的代码业务逻辑,以及你要修改的代码部分的具体功能,当你从全局看,在切入到局部的时候,可能你会发现:原本运行的代码,是有道理的,而不会认为自己比别的程序员聪明,就不会乱改别人的代码了。

其实,不管是程序,还是生活,还是工作,不管我们面对的是人生 bug,还是程序 bug,都是需要利用系统生态学原理去解决,才能获得长治久安,才能获得长期的收获。

特别提醒:关注我,给我发私信,回复关键字「666」,可以领取程序员副业赚钱案例电子书以及一本普通人都使用的《副业赚钱手册》电子书。最后,欢迎大家关注我的公众号「非著名程序员」,里面有很多干货。

展开阅读全文

页面更新:2024-05-17

标签:旱獭   代码   羊圈   几何级数   牧羊人   生态学   守护神   程序员   蚊子   局部   兔子   草原   生态   感觉   系统   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top