November 4, 2013

書評 - Clean Code: A Handbook of Agile Software Craftsmanship

圖片來源:天瓏網路書店
在書架上躺了一年多,這兩個月終於花些時間把它看完了。本書為Uncle Bob經典系列作之一,台灣在今年也有中文譯本上市,書名為無瑕的程式碼-敏捷軟體開發技巧守則。這年頭願意翻譯中高階書籍,譯者可謂佛心。本書作者雖掛上Uncle Bob的名字,但部份章節是由其它作者和Uncle Bob的團隊成員所撰寫,書中部份章節及程式碼範例也大多針對Java所寫。針對Java所寫的章節如果興趣不大,可快速瀏覽或跳過,對於閱讀本書其它章節影響不大。本書共有17個章節,四百多頁。

所謂的Clean Code,簡單地說其實就是易讀、可維護、可測試且持續重整的程式碼。

聽起來很簡單做起來卻是不容易。要做到易讀,程式碼的命名就要講究。通常我們寫程式仍以英文為主,對於英文非母語的人來說,英文命名是件頭痛的事,畢竟可使用的字彙有限。事實上,對於英文為母語的人來說也是件頭痛的事。測試?功能都寫不完了怎麼寫測試程式,更遑論重整程式碼了。

要做到Clean Code,牽涉到不只是開發人員的專業度,還有其它許多因素,如時程或政治因素。雖說如此,不代表可以不要做或不能做,所以書中提出的一些看法及作法來達到Clean Code,例如程式碼的命名、註解的寫法及程式碼的排版風格等仍是具有參考性。

身為一個專業的開發人員,寫出Clean Code應該是其畢生所追求的目標之一,至少我是這樣告訴自己。把程式碼寫好,不只是為了日後的維護人員(可能是同事,也可能是自己),也是為了提昇整個團隊產出的品質,降低維護所需的成本。雖然有時出於無奈無法達成,但至少盡力做到便是。對於資深開發人員來說,本書可能有一半的內容已經了解或平常已在實踐,但對於初階開發人員來說本書是相當值得參考。閱讀本書前,如果已經看過以下幾本書,讀起來會更為輕鬆,也較為清楚書中所指意思為何。

Design Patterns: Elements of Reusable Object-Oriented Software
Refactoring: Improving the Design of Existing Code
Agile Software Development, Principles, Patterns, and Practices

以上書籍皆有中譯本。

No comments: