今天看了篇文章:
http://blogoscoped.com/archive/2005-08-24-n14.html
这篇文章是讲为什么好的程序员是既懒有笨的!哈哈!
我记得在看UNIX编程艺术时,里面也有这么段话,说不会偷懒的程序员不是好程序员!
为什么呢!我们可以举些简单的例子:
1.只有懒惰的程序员才会去编写那些可以最终代替自己工作的自动化工具,好的程序员都会有一套自己的代码自动生成工具,有的是用模板语言,有的是用shell.在开发一个新的系统时,系统基础框架设计好后,很多业务层代码基本上都是一个模子出来的,要想让这些代码都是从一个模子里出来,那么就需要在底层下很大的功夫才能做到.所以,每个程序员够应该有,或者会写代码自动生成工具,当然,这个工具并不是一个成功工具!它的前提是你必须在底层有足够的抽象.
2.只有懒惰的程序员才不会去去写大段的冗余重复的代码,他们会想出各种方法来避免这种冗余代码的情况,做的好的,就是在系统的基础架构层来解决大部分这样的问题,通过精致的设计模式,高度抽象的模块,易用的接口,高度可配置的基础平台等等来实现,做的一般的会利用各种开源工具来代替自己想要的代码,做的差些的就是不断利用refactor重构出那些重复代码.
3.好程序员怎么可能"笨"呢!哈哈!俺们可都是天之骄子啊!小心我扔你鸡蛋啊!
很聪明的程序员一般比较自信,难以听进别人的意见,在一个团队中,最怕的并不是怕没有技术好的人,而是怕那些很聪明的人不跟你团队保持一致,举个例子,可能团队里有一套通用的数据存取方法,但聪明的程序员会坚持己见,自己发明出一套新的方法来!聪明的程序员会认为自己更懂客户的需求,而不顾市场人员提出的需求.这也是为什么很多人会说"要对团队中听话的人委以重任",我当然不同意这种看法,但是,既聪明团队意识又好的人,就比较少见了.团队不行的话,一个人再聪明又有什么用?
4.聪明的程序员喜欢自己重新发明轮子!笨的程序员喜欢利用聪明的程序员写出的代码!
5.聪明的程序员一般有自己思维的定势,笨的程序员因为什么都不懂,所以他的眼里什么都是可能,什么都是不可能!查找代码问题的时候,聪明的程序员首先会说:这是系统的bug,笨的程序员会看看自己的代码是不是有拼写错误!笨的程序员跟容易换位思考,下面有个例子:
一段关于web开发问题的程序员和客服人员的对话:
“从昨天开始我们的用户就看不到我们站点上的Logo了。”
“他试过重启浏览器么?”
“是的。”
“他试过重启电脑么?”
“是的。”
“他清空过浏览器Cache么?”
“是的。”
“他的浏览器版本是IE6么?”
“是的。”
“他确信是真的看不到Logo了么?”
“是的。”
“他是在电脑显示器屏幕上看我们的站点么?”
“什么?”
“比如说,它可能是打印出来看不到?”
“不。他是在显示器上看的。”
“除了站点Logo之外,他是不是其他的图片都看不到?”
“什么?哦。我再问问他。”
也许,聪明的程序员遇到这个问题的时候,甚至可能去找个图形算法分析下这个图片是否有问题!
最后,以http://blogoscoped.com/archive/2005-08-24-n14.html中的故事结尾,,以博列为看官一笑^_^
It’s like the story of the centipede(蜈蚣). The centipede was very good at walking with its hundred legs. It never spent a thought on just how it could walk. Until one day, when a big black bug(臭虫) asked the centipede “How can you manage to walk with all those feet? Don’t you find it hard to coordinate their rhythm?” The black bug already left, when the centipede was still sitting down, pondering how it could walk, wondering, and (for the first time in his life) even worrying a little bit. From that day on, the centipede couldn’t walk anymore.
So you better not think too much if you want to achieve something. And of course this is only half the truth, too...