大船瓦沙

写的好,我收藏起来慢慢看. 写的好,我支持一下. 没什么意思,把他踩下去. 阅读次数:84 | 订阅者:Jeff Xiong | 来源:透明思考 | Transparent Thoughts | 文章作者: gigix | 发表时间: 2008-08-14

<p>(From <a href="http://www.amazon.com/Productive-Programmer-Neal-Ford/sim/0596519788/2?ie=UTF8&pf=book">The Productive Programmer</a> )</p>

<p>1625年,瑞典国王古斯塔夫二世·阿道夫打算建造有史以来最棒的战舰。他雇了最好的造船工匠,专门种植了一片最刚硬的橡树林,都为了建造大船瓦沙。国王不断提出各种要求,希望把船建得更宏伟壮丽,到处都加上华美的装饰。有那么一天,他甚至决定在船上配备两套甲板炮,这是当时世界上绝无仅有的。他的船会是海上的霸王。而且由于迫在眉睫的外交问题,他还希望大船瓦沙能尽快造好。当然了,工匠们一开始的设计只有一套甲板炮,不过既然国王提出了要求,自然就得再加一套。由于太赶时间,工匠们来不及做“摇晃测试”──让一群水手从船的一边快跑到另一边,船在这种情况下不应该摇晃得太厉害(换句话说,没有头重脚轻)。结果,它的处女航只有几个小时,然后就沉入了海底:在给它加上所有华丽“特性”的同时,国王和工匠也让这条船变得根本无法航行。大船瓦沙在北海的海底长眠了几百年,直到20世纪初才被打捞出来,陈列在博物馆里。</p>

<p>一个有趣的问题:到底是谁导致了瓦沙的沉没?是国王,因为他要求了太多的特性?还是工匠,因为他们只顾着满足国王的要求,没有大声说出自己的担忧?看看你正身处其中的项目吧:你是不是正在建造又一艘瓦沙?</p>

<p>只做当下需要的。一开始这会很难,但最终你会得到一个更好的代码库。如果不引入不必要的复杂度,在修改或是重构时就不用对抗这些复杂度。程序员应该谨记:熵会杀死软件,所以,如无必要,勿增特性。</p>

技能云友情提示您: 如果您对本文观点感兴趣,欢迎到原文出处讨论,谢谢!