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


作者本人注重細節,本書分成多個章節。


作者自己用武術比喻程式設計,自稱自己是整潔程式碼之物件學派。


我們是作者


閱讀程式的時間比寫程式的時間還多,因此讓程式碼容易讀也會讓程式碼容易寫。


童子軍規則


離開營地前,讓營地比使用前更加乾淨。


前傳及原則


總結


看了武功秘笈不能保證自己一定能夠成為高手,還需要反覆思考反覆磨練。


 


留言

這個網誌中的熱門文章

異世界NTR web版第三章 觀後感 喧賓奪主 ,反派實力過強

持有縮小技能的D級冒險者,與聖女結婚並加入勇者團隊 漫畫 01-04 觀後感 大我與小我

泛而不精的我被逐出了勇者隊伍 web第三章 觀後感 菲莉真能打; 露娜超爽der