列书单之软件开发 2

上次书单列到了重构。我们接着来。

5. Head first design patterns. 这是一本很有意思的书。写作风格很平易近人。让这么一个挠头的问题变得比较容易懂。对于,刚开始接触design patterns的人,这本书很友好。当然,这本书的code也是Java写的。如果像我一样看到那本经典的 gang of four 写的design patterns 就头晕的话,这本很容易上手。说一下我的感受,四人帮那本适合C++很熟的人,并且不惧怕学术词汇的人来读。初学者一般不知道作者在说什么,但是如果有经验的开发者读那本书的话,就会觉得说的太好了。我个人更喜欢Java的这本。但并不是说这本就完全轻松读懂。也是要自己敲Java code的,而且如果完全没有产品级代码的经验就体会不到design pattern的好处。因为每一个例子都是直接上design patterns去解决。初学者就觉得好厉害呀,但是甚麽时候用,不知道。这也就造成了有了锤子看谁都是钉子的问题。或者过度设计的问题。代码变得很难懂。而且design patterns这么多,根本不能全记住。这也是我为什么更喜欢refactoring 那本书的原因。从一个具体的小问题出发,一点一点循序渐进的把代码重构到某一个pattern. 非常的自然。而且顺带说一下,如果你先看了我推荐的第一本书,SICP的话,就会觉得OO的design patterns 太麻烦,太小儿科了。我是先看的design patterns 后看的SICP,发现这不就是functional programming原生支持的吗?OO费了这末大的劲儿。不管怎样,如果用OO 或者Java,强烈推荐看一下这本书。

Continue reading