列书单之软件开发 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,强烈推荐看一下这本书。

6. Working effectively with legacy code. 这本书对工作非常有帮助。因为在工作中,很少有机会重头开发一个全新的项目。那也就意味着你要接着做别人做过的项目。这必然会面临遗留代码的问题。而这本书就是针对这种问题的。作者以其丰富的经验和敏锐的洞察力娓娓道来如何在遗留代码中加入新功能同时保证少出bug,使遗留代码得到演进。我在实际工作中使用了作者的方法,非常管用。这是一本强调实践的书,真的很好用。

7. Agile software development, principles, patterns and practices. 这是一本比较综合的书,从概念到方法论再到最佳实践,一应俱全。主要介绍了敏捷开发方法。说一个关于敏捷的传说,话说当年在硅谷,startup要是不用敏捷方法根本拿不到风头。呵呵。这本书让我重新认识了OO。作者深入浅出,理论实践相结合。作者Robert. C. Martin 是业界响当当的人物。这是一本不可多得的好书。

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.