首頁 / 文章導讀 / 舒讀無瑕的程式碼 : 敏捷軟體開發技巧守則

舒讀無瑕的程式碼 : 敏捷軟體開發技巧守則

無瑕的程式碼:敏捷軟體開發技巧守則
ㄚ琪畢業於大學的工業工程學科時,熱愛資訊的我心想不會踏入品質或製造的工作領域吧,所以很快地就把這些知識丟回給老師了,在經過幾年的資訊技能的養成,無意間還是踏入了品質資訊領域,在品質界裡講究的就是5S,那時這個觀念對我的程式應該沒有多少的影響。後來認識了神,推而廣之的就是讓聖靈來啟發設計程式的靈感,程式功力可說又提昇不少,心想已經很了不起了,沒多久開始熱衷文藝創作,並從古今文學經典吸取養料,這些日子就在想我的程式可以像高中時寫作文那樣強嗎?當我手上拿到了無瑕的程式碼 : 敏捷軟體開發技巧守則,翻到James O. “Jim” Coplien的推薦說,”Ærlighed i små ting er nogen lille ting.”這句丹麥諺語翻成中文就是『在小事情上的誠信是個不小的事情』,著名的現代主義建築大師 路德維希·密斯·凡德羅(Ludwig Mies van der Rohe)也這樣說:『神就在細節裡』,在這裡我注意到了小事或是細節因為誠信有奇蹟,熟讀的尼腓一書​16:29『指針​上​有​新​寫上​的​字​蹟,​一目了然,​使​我們明白​主​的​旨意;​那​是​按照​我們​對​它​的​信心​和​努力​而​隨時​書寫​和​變更​的。​由此​可​知,​主​能​藉著微小​的​方法,​促成​偉大​的​事情。』原來在教會學習小事可以觸發了不起的大事。

因為這樣的提醒,推薦裡說的我們是不是應該對舊程式重構了,否則我們學習到的悔改原則,不就沒有落實,”To err is human; to forgive, divine.”書中的中譯『熟能無過,神亦寬恕』看來要拿起這本書重構程式了。看熱鬧的鄉民們可以先看看博客來的介紹,再來決定看不看↓↓↓↓↓↓↓

本書榮獲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震撼年度大獎的《: 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)

↑↑↑↑↑↑↑

在第1章  無瑕的程式碼→什麼是Clean Code?提到了Dave Thomas和Andrew Hunt,《The Pragmatic Programmer》的破窗效應理論,如果一開始沒有注意細節,那麼程式就會像破窗理論一樣壞到不可收拾,The Pragmatic Programmer有簡體英文註釋版:程序員修煉之道(英文注釋版)可以參考。

物件導向分析設計與應用一書的作者Grady Booch這樣說:『Clean Code是簡單又直接明瞭的,讀來就像是一篇優美的散文。Clean Code絕不會掩蓋設計者的意圖,反而充滿著俐落的抽象概念,以及直截了當得程式控制敘述。』

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

3 comments

  1. “價格要400元,打完79折後也要379元”
    400*0.79 = 316
    應該是480 *0.79 = 379.2;
    現在降到75折了
    優惠價:75折360元
    優惠期限:2014年03月17日止

  2. 謝謝你的留言,確實現在是打75折了。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top