Clean Code 無瑕的程式碼 第1章 無暇的程式碼
第一章作者請大師們分享自己對Clean Code的看法,作者提到的code-sense如同《聖鬥士星矢》穆先生的名言:「第七感只可意會,不可言傳。」有的人天生幸運天生就有code-sense,其餘的人就要後天努力才能有機會擁有code-sense。作者的總結寫得很好!《Clean Code》 就像是武功秘笈,有武功秘笈之後,還要勤加練功才能成為高手高手高高手。
《Clean Code》說出好程式與不好程式之間的差別,知道如何撰寫好程式,也知道如何將不好的程式碼轉換成好的程式碼。
程式碼將一直存在
作者主張程式碼會一直存在,因為細節很重要,儘管會有機器能夠寫程式,它們做的事是programming,最後完成品依然是程式碼(code)。人工智慧無法完全取代人類。
劣質的程式碼
作者的職場經驗好的程式碼可以節省更多時間。為何會有壞的程式碼?主要都是為了趕時間、敷衍了事只要程式能運行就好,造成將來會浪費更多時間。
作者遇過因為程式寫不好而倒閉的軟體公司。
雜亂程式的代價
雜亂的程式碼會讓程式難以更新與維護,每次更改都要花很長的時間研究舊有的程式,為了解決問題公司僱請新人,結果在時間壓力之下,新人們反而增加更多雜亂的程式碼,形成惡性循環。
富麗堂皇的新設計
舊有的程式碼無法改動,出現一種情況公司組建新的開發團隊開發新的專案解決問題,結果出現雙頭馬車的情況,一個專案有兩組人馬競爭都是做同樣的事情,經常會出現人事更替改朝換代,新專案最後也沒有完成的情況,最後變成舊專案與新專案兩個爛攤子。
態度
作者主張專業的工程師要「反求諸己」,不要整天怪東怪西抱怨環境。
面對主管與客戶無理要求,作者認為還是要說清楚講明白,用心力保護程式碼。
作者用看病做為比喻,病患要求醫生看病不要洗手,醫生要有專業的堅持,不能接受病患的無理要求。
最根本的難題
為了趕時間產生出來的爛程式碼實際上會浪費更多使間,節省時間的唯一方法是維持程式整潔。
Clean Code 的藝術
code-sense 是能寫出 Clean Code 的關鍵因素。有的人天生有程式感,有的人需要依靠後天學習。
缺乏程式感的程式設計師看到雜亂的程式碼會知道有問題,卻無法改善。有程式感的設計師能夠改良雜亂的程式碼。
什麼是Clean Code?
作者請大師們發表自己對Clean Code的看法。
Bjarne
「優雅」有「效率」、降低相依性、完備處理錯誤程式碼、避免破窗效應、只做好一件事、注重細節。
Grady
可讀性、清楚描述問題與設計者解決問題的方法,程式碼如同文章。
Dave
可讀性,可讓開發者以外的人修改、單元測試、驗收測試、小程式、透過字面表達含意。
Michael
被「照料」過有條不紊的程式碼。
Ron
通過所有的測試
沒有重複的程式碼
充分表達系統設計的構思
最少量的類別、方法、函數
減少重複、高度的表達力、及早建立抽象概念。
Ward
程式執行結果與自己的想法相同。
Bob
作者本人注重細節,本書分成多個章節。
作者自己用武術比喻程式設計,自稱自己是整潔程式碼之物件學派。
我們是作者
閱讀程式的時間比寫程式的時間還多,因此讓程式碼容易讀也會讓程式碼容易寫。
童子軍規則
離開營地前,讓營地比使用前更加乾淨。
前傳及原則
總結
看了武功秘笈不能保證自己一定能夠成為高手,還需要反覆思考反覆磨練。