花了一个多星期的时间把《The Productive Programmer》看了一遍,因为是介绍技巧性的书,所以看得比较快。
整本书一共分为两个部分,第一部分是Mechanics,第二部分是Practice。
第一部分着重介绍的是提高工作效率的通用的方法,提到了诸如VI编辑器,快捷键,宏命令的使用等等,其中介绍Mac平台下的QuickSilver印象特别深,之前我也在我的MBP上装过QuickSilver,但是使用了一把感觉和Spotlight差不多,就放弃使用了。然而按照这本书的介绍,重新试了一下QuickSilver,才感觉比Spotlight强大太多了,所以其实对于你所在使用的很多工具,你都可以通过某种方式来提高使用它的效率,很多时候我们只是不了解它。
第二部分着重介绍的一些和编程密切相关的提高工作效率的技巧,其中大部分也还都是老生常谈的东西,比如单元测试,奥卡姆剃刀,迪米托法则等等,在工作中也发现,虽然大家都知道这些东西好,但是却很少的真正地主动地去实践它。虽然第二部分大部分都是老生畅谈的东西,但是还是有一些比较新鲜,吸引人的东西,比如里面提到的Polyglot Programming,我不知道怎么翻译才好,姑且叫做多语言编程吧,其实这里的多语言我觉得更多的面向同一个平台的多种不同类型(领域)的语言,这里面有一个很好的例子就是Java平台,Java语言本身由于其诟病已经让很多开发者抱怨频频,但是Java做为一个平台通过借鉴其他的语言,却发展出很多种面向不同问题域的语言。比如Clojure,Jython,Scala,Jaskel等等,作者在本书中也预言了以后多语言编程的趋势。另外一个比较有趣的话题是Question Authority,翻译过来应该叫问题权威,里面以一个愤怒的猴子的故事开头,拿JavaBean的Setter Getter方法做了例子,提出我们应该对一些所谓的权威提出质疑,包括Java所谓的命名规范,我们要做的不仅仅是去遵守规范,而是了解规范出现的原因,理解在什么情况下可以打破这些规范,“因为每一个人都说这件事情就应该是这样的”并不是一个正确的答案。
其实本书介绍的大部分都是一些工作中的技巧,作者也说了,里面的大部分东西都是来自于自己或者同事在工作中积累的小技巧,作者只是对其进行了整理和分类。在工作中的小技巧多得去了,主要的不是去知道每一个技巧,而是当你工作的时候,明白什么时候需要使用一些技巧去更快速地完成这项工作,什么时候可以根据自己地需要去创造符合自己需求的技巧。重要的不是知道有很多很多的技巧,而是拥有一个懒惰的心(懒惰是程序员的美德^-^),不做重复的事情。