关于编程一些鲜为人知的真相

jopen 10年前

        英文原文:Some lesser-known truths about programming

        作为一个程序员,我的经历让我学会了关于编程方面的知识。下面是一些关于我们在编程时或许会大吃一惊的事实真相:

关于编程一些鲜为人知的真相

        如果把所有项目的生命周期平均一下,那么一个程序员大概 10-20% 的时间用来写代码,并且大多数程序员可能每天大约只有 10-12 行代码会进入最终的产品,无论技能水平如何。优秀的程序员会将剩余的 90% 的时间大多用在思考、研究和试验上以发现更棒的设计。而非优秀程序员他们的大多数剩余时间是在调试代码。

        一个好的程序员的工作效率是普通程序员的 10 倍,而一个伟大的程序员则是普通的 20-100 倍。这绝对没有夸大其词——这是自上个世纪 60 年代起就开始的研究表明的。一个糟糕的程序员不单是一事无成,相反——不仅完不成分配给他的任何工作,还会制造各种各样的麻烦和问题需要别人来解决。

“伟大的车工拿几倍于普通车工的工资,但是一个伟大的代码作家——程序员却是值得我们付出普通软件写手 10,000 倍的薪水。” – 比尔·盖茨

        伟大的程序员只需用很少的时间写代码——因为很多代码都几乎不用怎么修改就能用在最终产品中。反而是那些花了很多功夫写代码的程序员——懒惰、 无知、狂妄,不去想那些老问题的解决方案,以致于问题一直是问题。伟大的程序员是识别和重复使用通用模式方面的高手,他们对于需要重构(重写)代码来达到 理想的设计毫不畏惧。糟糕的程序员写出来的代码,总是缺乏概念上的完整性,不可冗余性,没有层次结构和模式可言,所以如果要重构的话就会变得异常困难,这 样还不如把这些垃圾代码删掉,再重新写过方便呢。

        像其他过程一样,软件开发服从熵的规律。连续不断的变化会削弱原设计的概念完整性,从而最终导致软件的死掉。虽然说,软件的逐渐衰败直至死亡是 不可避免的,但是如果程序员不能考虑到概念上的完整性的话,软件就会迅速腐败,在它被完成之前就一文不值毫无价值了。缺乏完整性所造成的失败可能是软件项 目失败的最常见原因了。(第二个最常见的原因是不能满足客户的需求。)软件衰败会以指数级的速度迅猛减缓进程,所以很多项目在快要面临自杀式死亡之前都会 被无情地抹杀。

        2004 年的一项研究发现,大多数的软件项目(51%)在某个重要方面失败,15% 将完全失败。而这已经是个进步了,要知道自 1994 年以来,完全失败的比例高达 31%。

        虽然大多数的软件是由团队制作的,但却不是一个民主的活动。通常情况下,只有一个人负责设计,而团队中的其他人则补充细节。

        编程是项艰苦的活计,也是一个很激烈的脑力活动。优秀的程序员一周 7 天一天 21 小时都在想他们的工作。那些超棒的代码搞不好是他们在洗澡或者睡觉的时候想出来的。正是因为这些最重要的任务无需敲着键盘就可以完成,开发软件项目的时候 也就没有必要加派人手或者加班加点在办公室熬夜了。

        译文链接:http://news.html5tricks.com/some-lesser-know-programming.html

        翻译作者:IT 新闻 – 蒋丽丽