您的位置:首页 > 职场人生

注重实效的哲学(程序员修炼之道摘录二)

2010-11-29 00:14 239 查看
软件的熵

尽管软件开发几乎不受任何物理定律的约束,熵对我们的影响却还是很大的。熵是一个来自物理学的概念,指的是某个系统中的“无序”的总量,遗憾的是,热力学定律保证了宇宙的熵倾向于最大化,当软件中的无序增长时,程序员们称之为“软件腐烂”

有很多因素可以促生软件腐烂,其中最重要的就是一个似乎是开发项目时的心理或者是文化,即使你的团队只有你一个人,你开发项目时的心理也可能是非常微妙的事情。尽管制定好了最好的计划,拥有最好的开发者,项目在其生命期中仍可能遭遇毁灭和衰败,而另外有一些项目,尽管遭遇到巨大的困难和接连而来的挫折,却成功地击败自然的无序倾向,设法取得了相当好的结果。

是什么造成了这样的差异?

在市区,有些建筑漂亮而整洁,而另一些确实破烂不堪的“废旧船只”,为什么?犯罪和城市衰退领域的研究者发现了一种迷人的触发机制,一种能够很快将整洁,完整和有人居住的建筑变为破败的废弃物的机制

破窗户

一扇破窗户,只有有那么一段时间不修理,就会渐渐给建筑的居民带来一种废弃敢——一种职权部门不关心这座建筑的感觉,于是有一扇窗户破了。人们还是乱扔垃圾,出现了乱涂乱画,严重的结构损毁开始了,在相对较短的一段时间里,建筑就被损毁的超出了业主愿意修理的程度,而废弃感变成了现实。

“破窗户理论”启发了纽约和其他大城市的警察部门,他们对一些轻微的案件严加处理,以防止大案的发生,这起了作用:管束破窗户,乱涂乱画和其他轻微违法事件减少了严重罪案的发生。

不要留着”破窗户“ (低劣的设计,错误决策,或者是糟糕的代码)不修,发现一个就修一个,如果没有足够的事件进行适当的修理,就用木板把它钉起来,或许你可以把出问题的代码放入注释或者是现实”未实现“消息,或是用虚设数据加以替代,采取某种行动防止进一步的损坏,并说明情势处在你的控制之下。

我们看到过整洁运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化。还有其他一些因素能够促生软件腐烂,但与其他因素相比,置之不理都会更快的加速腐烂的进程。

你也许在想没有人有时间到处清理项目的所有碎玻璃,如果你继续这么想,你就最好计划找一个大型垃圾罐,或是搬到别处去,不要让熵赢得胜利

灭火

作为对照,让我们讲述Andy的一个熟人的故事,他是一个富得让人讨厌的富翁,拥有一所完美,漂亮的房子,里面满是无价的古董,艺术品,以及诸如此类的东西,有一天,一副挂毯挂得离他的卧室壁炉太近了,着了火,消防人员冲进来救火和他的房子,但他们拖着粗大肮脏的消防水管冲到房间门口时却停住了——火在咆哮——他们要在前门和着火处之间铺上毯子:

他们不想弄脏地毯

这的确是一个极端的例子,但我们必须以这样的方式对待软件,一扇破窗户——一段设计低劣的代码,团队必须在整个项目开发过程中加以忍受的一项糟糕的管理决策——就足以使项目开始衰败。如果你发现自己在有些破窗户的项目里工作,会很容易产生这样的想法:”这些代码的其他部分也是垃圾,我只要照着做就行了“项目在这之前是否一直很好并没有什么关系:在最初得出”破窗户理论“的一项实验中,一辆废弃的轿车放了一个星期,无人理睬,而一旦有一扇窗户被打破,数小时之内车上的设备就被抢夺一空,车也被翻了个底朝天

按照同样的道理,如果你发现你所在团队和项目的代码十分漂亮——编写整洁,涉及良好,并且很优雅——你就很可能会格外注意不会把它弄脏,就和那些消防员一样,即使有火在咆哮(最后期限,发布日期,会展演示等),你也不会想成为第一个弄脏东西的人。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: