經過這陣子的評估,終於列出了夢幻般 (?) 的讀書清單。我的做法是先在網上看到有人推薦,到書局翻一陣子,再回來查 Amazon 的評論,最後決定是否有必要看。附帶一提,待這書單決定後又查了一下,結果發現每本書都有得到 Jolt Award,一瞬間好像以為 Jolt Award 不值錢了 :-)。
以下依暫定的閱讀順序依序說明,除前兩本外,後三本都有中文版:
1. Test Driven Development by Examples
Amazon 評論 4 顆星,由 Kent Beck 所著。全書只有 200+ 頁,用大量的例子,一步一步說明怎麼進行 TDD,相當易讀。這裡有別人寫的詳細書評。
2. xUnit Test Patterns: Refactoring Test Code
Amazon 評論 4.5 顆星,不過只有七筆評論,樣本略嫌不足。 在書店試翻的感想是:好書但不易讀,而且實在是太厚了。ThoughtWorks 專出這種書嗎?
3. Refactoring to Patterns
Amazon 評論 4 顆星,但評論兩極化落在 3 和 5,最中肯的評論為: "Good ideas, but needs refactoring",值得一讀,但不好消化。讀過 Martin Fowler 的 Refactoring 並有一段實戰經驗後的最佳書藉。本書中文版《重構-向範式前進》,且是侯捷合譯的 。
4. Head First - Head First Object-Oriented Analysis and Design
Amazon 評論 4 顆星,評論裡指出本書適合初學者,另外最多人同意的評論 (Decent Introduction to OOA&D) 指出:本書不夠簡潔,並有不少小錯,若有第二版才值得推薦。
5. Head First - Design Pattern
Amazon 評論 4.5 顆星,且是壓倒性的一堆 5 顆星。Head First 的書以易讀出名,但通常也寫得很厚,需要花不少時間消化 。 對照過於精簡典雅的 Design Pattern Bible Book,這本書親切不少。附帶一提,在書店還有看到 Head First - Algebra,真是太有趣了!可惜是教國中代數,不是教線性代數。
依目前心得來說,有四件事要學:
- 寫出良好的測試程式 - book 2
- 寫出良好的 OOP- book 4, 5
- 提昇重構技巧 - book 3
- TDD (其實就是上述三者的綜合體) - book 1
前往軟體開發聖殿之路是很遠的,希望一個月至少能解決一本,並持續地應用到實戰中,半年後就出師啦!
備註
這裡補充我曾看過且大力推薦的書藉:
- Effective Java Programming Language Guide:Joshua Bloch 所著。中文版只有第一版,但原文已有第二版,我只看過中譯第一版。本書適合偶而拿出來重習學習,薄又易讀。若不認識 Joshua Bloch,至少也應該用過他做的 Java Collections Framework。
- 重構:改善既有程式的設計:Martin Fowler 所著,淺顯易懂的好書。說明何謂壞程式碼,以及如何一小步一小步安全地修正壞程式碼。