为什么代码越写越复杂

代码复杂程度可以用“熵”来表示,“熵”是物理学中的概念, 表示所有“无序”的总和, 尽管软件开发不受任何物理定律的约束,然而熵对软件开发的影响非常之大, 当代码中的无序增长到一定程度时,代码复杂到了程序员难以掌控, 软件就“腐烂”了。

追本溯源,导致软件腐烂的原因其实并不复杂, 跟我们现实世界中的方方面面有着密切的关系。

随便拿一则经常被报道的新闻事件来说

国外某处著名旅游景点的墙壁上被中国游客刻满了“ xxx到此一游”, 国外媒体表示从中国旅客的这种行为上可判断出中国人民的素质普遍低下; 国内人民表示要声讨这群破坏国外景点,另国人蒙羞的游客,让他们滚出中国人的行列。

为什么好好的一堵墙上会被刻满了字? 为什么这群人不去别的地方刻非看准一个地方刻? 其实道理很简单, 当这堵墙上有一个人刻过了字,那么第二个人便会认为:“别人可以刻, 那么我也可以刻”, 然后第三第四第五和后面所有的人都会这么想, 字越刻越多, 墙也越来越破坏的严重, 毕竟人都有喜欢留纪念的天性。 然而, 假如是一面干净没有一丝被损坏的痕迹的墙,我想会敢冒天下之大不韪去上面搞破坏的人肯定不多, 因此,墙会一直保持着原样; 但如果先例一开,之后的场面往往是一发不可收拾。 就像我们过马路, 本来大家等红灯等的好好的, 某一个人按捺不住闯了红灯, 接下来仿佛有一股无形的力量牵引着大家一起去闯红灯, 这可能就是所谓的乌合之众吧。

回到软件开发的话题,软件会腐烂其实也是同样的道理。 刚才开始的时候, 代码写的井井有条, 然而, 某一个时刻为了实现一个特殊的需求,一时犯懒图方便, 没有按照原来的方式继续保持代码的井然有序, 让软件的熵值增加了那么一点点。 当时这么做的程序员可能认为:“就弄脏了这么一小块地方, 没什么大影响的”, 但是随着软件功能的演进, 问题会日益严重。 当下次再碰到类似于这种与原来代码构造格格不入的特殊问题, 肯定会再次为了方便而抵挡不住诱惑继续犯错, 脑子里肯定会蹦出这样的想法:“反正代码已经脏了, 再脏一点点又有何妨”,这和在景点刻字的游客的想法何其相似。 毫无疑问, 软件开发中特殊的需求实现永远不可能避免,然后接下来肯定是一而再再而三的纵容自己继续“把代码弄脏”, 就算是换个程序员来开发还是一样, 最多只是抱怨下:“哪个SB程序员怎么写出了这么烂的代码”,然后就是:“既然那个SB这么干了, 那我也这么干, 反正已经理不清了”。 所谓的软件腐烂就是这么形成的。

因此, 要避免软件腐烂, 就一定要把软件熵值降到最低。 因为一时偷懒图方便增加代码无序性,哪怕只是一点点,这个头不能开, 不然会让整个软件走向无法回头的深渊。当看到软件中某处有那么一点“脏”的时候,一定要尽心尽力的把它清理干净,否则这个污点会越来越大, 并且向其它地区扩散, 最后整个软件中所有地方都臭不可闻, 捏着鼻子写代码的这种感觉真的很不好。

时间: 2024-10-26 03:48:40

为什么代码越写越复杂的相关文章

为什么android手机越用越慢

根据第三方的调研数据显示,有 77% 的 Android 手机用户承认自己曾遭遇过手机变慢的影响,百度搜索"Android+ 卡慢",也有超过 460 万条结果.在业内,Android 手机一直有着"越用越慢"的口碑,这个现象甚至超出了硬件范畴--很多中高端 Android 手机在硬件参数上都优于同一代 iPhone,但是它们仍然会在使用半年到一年的时间后进入"欠流畅"的状态--这无疑是一件令人困扰的事情. 然而,若是要回答这个问题,我们需要追溯

为什么Android手机总是越用越慢?

根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情. 然而,若是要回答这个问题,我们需要追溯到上个世纪,去寻找智能手机的起源. 西方历史及奇幻文学作品十分热衷于表达

为啥Android手机总会越用越慢?

转自:http://www.androidchina.net/818.html 根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情. 然而,若是要回答这个问题,我们

为什么安卓手机总是越用越慢?

根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索"Android 卡慢",也有超过460万条结果.在业内,Android手机一直有着"越用越慢"的口碑,这个现象甚至超出了硬件范畴--很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入"欠流畅"的状态--这无疑是一件令人困扰的事情. 然而,若是要回答这个问题,我们需要追溯到上个世纪,去寻找智能

晒越老越值钱的工作_有你的吗?

原文地址 程序员越老越出色 在国内,似乎并没有像国外那样看到很多的老程序员,这或许是国内的软件产业并不是很发达的原因吧.不过纵观欧美等软件大国可以发现,老程序员也能焕发新青春.Stackoverflow通过对声誉值超过100的软件开发人员统计发现:程序员年龄越大,他们的Stackoverflow声誉值越高.或许姜还是老的辣!!! 对大龄程序员的极大误解 在国内,对于大龄程序猿我们总会有一些误解. 误解1 大龄程序员比年轻程序猿昂贵,年轻的开发者更可取 是的,大龄程序员要比年轻程序员要求的薪水高.

为什么 Android 手机总是越用越慢?

根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情.     然而,若是要回答这个问题,我们需要追溯到上个世纪,去寻找智能手机的起源. 1965 年,贝尔实验室.通

做技术到底可以做到哪种地步-技术为什么越走越窄

尽管做技术已经有不少年头了,不管是犹犹豫豫还是坚定不移,我们走到了现在,依然走在技术这条路上. 不管我们处于何种职位,拿着哪种薪水,其实,我们会是不是的问问自己"做技术到底可以做到那种地步",说的直白一点,其实我们很多人对技术这条路依然充满很多彷徨,不管我们的现状是多么的满意与辉煌. 最近一直招聘技术人员,见了很多求职的朋友,也和他们探讨了很多与职业发展,技术能力方面的问题,下面说下我个人的看法,和大家分享一下. [加入我们:http://www.lagou.com/jobs/3102

JavaScript定时器越走越快的问题

目录 JavaScript定时器越走越快的问题 (setinterval)多次初始化 清除(clearInterval)的失效 解决方法 JavaScript定时器越走越快的问题 之前在项目中写了定时器来做循环播放,但是总是会有越走越快的问题,开始是以为前后的HTML代码拼接的有问题,时间紧急的情况下反复改了很多也没什么效果,后来发现是js定时器的问题,在这里记录一下. (setinterval)多次初始化 使用js定时器(setinterval)首要的问题就是要记得清除,即调用(clearIn

在JavaScript中,为什么我们在用定时器控制某一元素移动时,有时会出现元素越走越快的现象

当我们在用定时器时(setinterval),如果我们不清定时器,它会不停的运转下去.有人会问,我只命名了一个定时器的名字,在重新调用这个定时器名字时,这个定时器应该重新开始啊,其实不是这样的.当我们在启动一个定时器时,电脑会为我们开启一个定时器,当我们再次用同一个名字开启定时器时,电脑会再开另外开启一个定时器,与先前开启的定时器无关,我们所谓的定时器的名字,它只是一个变量而已,并不是定时器的名字,它的功能是清定时器用的,也就是通过clearInterval(变量)使定时器停止运行.代码实例如下