無瑕的程式碼-敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)

Robert C. Martin 著、戴于晉、博碩文化 譯

買這商品的人也買了...

商品描述


本書榮獲iThome年度百大好書推薦

本書的原文書名為《Clean Code: A Handbook of Agile Software Craftsmanship》,根據作者的說法,《無瑕的程式碼》為Jolt得獎著作《敏捷軟體開發:原則、樣式及實務》的前傳。
在台灣另一本銷售極佳的書籍《重構─改善既有程式的設計》,根據亞馬遜Amazon網站的統計,購買該書原文版《Refactoring: Improving the Design of Existing Code》,又同時購買的其他書籍第一名,正是《Clean Code: A Handbook of Agile Software Craftsmanship》這一本書。


第一章作者開宗明義說明什麼是Clean Code,他詢問了包含C++發明人Bjarne Stroustrup、Eclipse策略教父Dave Thomas、極限程式設計大師Ron Jeffries、維基與極限程式設計發明人,Ward Cunningham等等的大師,從他們的眼光來描述什麼是Clean Code,最後才說到作者本人認為的Clean Code應該長成什麼樣子,有什麼好處,以及學習撰寫Clean Code的基本原則。

小編只能說,能和那麼多大師對談,就已經證明了作者也是一位大師

其餘部分本書分成三部份。

 第一部份

 包含有許多章節,這些章節將描述撰寫clean code的原則、模式及實踐,這些章節包含了不少的程式碼篇幅,閱讀它們頗具有挑戰性。這些章節替你準備好閱讀第二部份所需的背景知識。

第二部份

 這裡包含許多複雜性不斷增加的案例討論。在這個部分,作者會直接帶領您進行整個重構的過程,每次的修改,作者都會說明原因,重構的對象並不僅止於一般的程式,甚至還包含了著名的框架,例如JUnit(哇!把開放原始碼框架拿來重構,真酷)。

第三部份

 終於到了成果收割的時候。最後一章列出了案例討論時搜集到的程式啟發和氣味。在案例討論裡走過和清理程式碼時,紀錄了每個行為的原因,並整理成一種程式啟發或氣味,成了一個知識庫,這個知識庫可以說是整本書的精華與交互參照。

作者簡介

Robert C. Martin

人稱Uncle Bob,程式設計經驗超過40年,Agile Software(敏捷軟體開發)的提倡者之一。

創立Object Mentor,這是一間專注於C ++、Java物件導向、模式、UML、敏捷方法學和極限程式設計的顧問諮詢公司。

在這些領域,作者撰寫了相當多的名著,其中,又以獲得有IT奧斯卡獎之稱──Jolt震撼年度大獎的《Agile Software Development: Principles, Patterns, and Practices》《敏捷軟體開發:原則、樣式及實務》最為知名。

該得獎年度,Jolt僅頒布通用類、技術類各一本著作得獎,通用類由此書獲得大獎,而技術類書籍則由另一本廣為人知的《Thinking in Java(第三版)》獲得。

目錄大綱

第1章  無瑕的程式碼      (Clean Code)
第2章  有意義的命名      (Meaningful Names)
第3章  函式          (Functions)
第4章  註解          (Comments)
第5章  編排          (Formatting)
第6章  物件及資料結構     (Objects and Data Structures)
第7章  錯誤處理        (Error Handling)
第8章  邊界          (Boundaries)
第9章  單元測試        (Unit Tests)
第10章  類別         (Classes)
第11章  系統         (Systems)
第12章  羽化         (Emergence)
第13章  平行化        (Concurrency)
第14章  持續地精煉      (Successive Refinement)
第15章  JUnit 的內部結構    (JUnit Internals)
第16章  重構SerialDate (Refactoring SerialDate)
第17章  程式碼的氣味和啟發  (Smells and Heuristics)

附錄 A 平行化之二 (Concurrency II)
附錄 B org.jfree.date.SerialDate (第16章,重構的目標與結果)
附錄 C 啟發的相互參照    (Cross References of Heuristics)