perl 的作者说,优秀的程序员应该有的三个优良品质是:懒惰,急躁,傲慢。
从中文词性上看,这三个词都是贬义,我还是习惯给它们都加上”伪“作为前缘,因为这只是表象,实质不是这样的。
《大道至简》上说,”停下来,思考,才是进步的本质“。可以说是对”伪懒惰“的最好诠释。
是的,确实是这样。
有的人可能一天天很忙,忙得找不到北,可是,他可能创造不了多少生产力,而只是在浪费时间,浪费自己的时间,也浪费别人的时间。是的,浪费别人的时间,试想一下,在一个工程中,一个关键环节的延误,带来的将是整个工程的延期。
可是,他们是在忙呀!你可能这样为他们辩护。
忙就是好吗?
一个具体的例子:在一个 java 项目中,原来用的注释都是 "/* */" 的格式,现在想用 javadoc 或者 doxygen 的注释格式来自动生成文档,也就是 "/** */"格式,怎么办?源代码文件不多,也就 10 个。
对于一个勤劳的程序员,马上动手,改嘛,就 10 个文件,一个个打开,用”编辑 --> 替换 -->'/*' 换成 '/**' -->全部替换 “,搞定。用不了 10 分钟。我们说,他是勤劳的。
但是对于一个伪懒惰的程序员,他会坐着不动。然后想”这个问题会不会再次发生?我是不是每次都要这样重复劳动呢?“他得出的结论是,这个改动很有可能将来的哪一天还会需要,比如又有了新的代码,也要做同样的处理,或者是其它的格式转化。怎么办?
精确的重复工作,是计算机的特长。
这个问题,对于我,我只要
for f in *.java do sed -i -e "s@/*@/**@g" $f done |
就好了。是的,我很懒,懒到有时间在那里坐着不动。
《Getting Thing Done》里说,我们应该把要做的事情写下来,然后去完成它们,这样就可以一步步的实现我们的目标和计划,最终改变我们能改变的,实现我们的理想。但是,前面有个前提,就是”这件事要事先安排好“。所谓”磨刀不误砍柴工“,就是这个道理吧,哈哈,殊途同归了。
《The Pragmatic Programmer》 里最重要的一条更是说”Don't Repeate Yourself“.
你真的知道怎么做到这一点吗?
我正在学,而且我相信我能学会,因为我渐渐知道了它的力量。
在科学和数学的领域,尤其如此。不走弯路,你就是在走捷径。
阅读(1562) | 评论(0) | 转发(0) |