寫出一手騷代碼,學習下《代碼整潔之道》

《代碼整潔之道》講述了一系列行之有效的整潔代碼操作實踐。軟件質量,不但依賴於架構及項目管理,而且與代碼質量緊密相關。這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認。

《代碼整潔之道》提出一種觀念:代碼質量與其整潔度成正比。乾淨的代碼,既在質量上較為可靠,也為後期維護、升級奠定了良好基礎。

作為編程領域的佼佼者,這些實踐在《代碼整潔之道》中體現為一條條規則(或稱“啟示”),並輔以來自現實項目的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的代碼,從而有效提升代碼質量。

《代碼整潔之道》出版於2008年,近年來,一直被列為“亞馬遜最暢銷的五本書”之一。本書作者被親切地稱為“Bob叔叔”,他也是《敏捷宣言》的原作者之一,資歷非常豐富。本書在Goodreads上平均評分為4.4(評分人數超13,000)。可以說,這是一本程序員的必讀書。

寫出一手騷代碼,學習下《代碼整潔之道》

前些年閱讀過《代碼整潔之道》,當時對這本書的理解有限,還在寫著一些垃圾代碼。後來的工作中,對這本書反覆閱讀,有了一些體會,更是將這些收穫運用到工作中來。

個人對這本書的理解有以下三個方面。

1.代碼應該精簡

羅伯特·C·馬丁說,“函數的首要規則是體積小。第二規則是使其儘可能地變小。”

這裡有兩條書寫整潔函數的黃金定律:

· 代碼應該少

· 函數應該專注做一件事,並且做精

每個系統都是由程序員設計,從一個特定領域的語言搭建起來的。函數是語言的動詞,而類是名詞。在任何編程語言中,函數通常是系統中的第一行,編寫好的函數是寫好代碼的實質所在。

如果一個大的代碼文件包含大量冗長而複雜的代碼,則可以將該文件分為多個模塊,將模塊分為多個函數,再將函數分為多個子函數,直至看到代碼邏輯和任務。


寫出一手騷代碼,學習下《代碼整潔之道》

2.代碼需要好的註釋

註釋很少卻清晰、表達力強的代碼優於註釋多的混亂、複雜的代碼。 ——羅伯特·C·馬丁

好的代碼註釋可以讓維護者快速的知道這段代碼的功能用途等,但是過多的、無用的、更新不及時的註釋,可能會更加具有破壞力。

大部分程序員寧願去維護代碼,都不願意同步去維護註釋, 要牢記,帶有一點註釋並且整潔和有表現力的代碼,要遠遠好過複雜並帶有大量註釋的代碼。不要浪費時間去解釋你寫的代碼,而去投入時間去使其整潔。

《代碼整潔之道》關於命名寫了整整一個章節,包括:

· 設置可讀性高的名稱——例如,int elapsedTimeInDays,而不是in days

· 使用讀得出來的名稱——例如,客戶而不是DtaRcrd1

· 避免使用編碼——不要用前綴m_表示"members",也不要使用匈牙利表示法

· 每個概念對應一個詞——不要fetch,retrieve,get多個概念對應一個詞


寫出一手騷代碼,學習下《代碼整潔之道》


3.為你的代碼增加異常錯誤處理

書中講了錯誤處理中的2個建議,第1個是使用異常代替返回碼,第2個是對於要捕獲的異常先書寫Try-Catch-Finally語句。

對於第1個書上說是為了代碼書寫過程中不需要每次調用都要去判斷返回的各種錯誤碼的情況,影響代碼整潔會打亂代碼邏輯。但有時候實際使用過程中,還是經常會有將錯誤碼定義為返回值的情況,對調用者來講方便判斷結果,一般這種情況的錯誤碼都會有很多種類型,甚至存在不同的錯誤代碼可能都當做成功處理的情況,只是單單使用拋出異常的方式有時候並不是太好。

對於第2個,這是一種好的代碼規範,對於需要捕獲錯誤的函數,理論上try開頭,finally結尾。

只要是代碼,就難免不會出現問題,我們需要做的是,當出現問題時,能夠在 try-catch語句中捕獲錯誤。


寫出一手騷代碼,學習下《代碼整潔之道》


無論你是剛入行的新人,還是經驗豐富的程序員,你都會意識到工作並非你提高自己編程技能和知識的最佳途徑。

你在業餘時間所做的事情、你掌握自己所學知識的方法……是這些因素最終決定你在這個行業能否成功。這就是為什麼對我們程序員來說,增長的心態如此重要。

作為程序員,我們學習和改進的方法特別多,比如:敏捷編程、學習在線課程、參加聚會、更多的工作經驗、做項目和聯繫導師。

我個人最喜歡的學習方法之一是:選擇一本不錯的書看,試著從那些在這個行業浸淫多年的人那裡學習一些東西。

希望你抽時間一定看看這本《代碼整潔之道》,寫出可讀性高的代碼,讓別人輕鬆理解,方便修改。


寫出一手騷代碼,學習下《代碼整潔之道》


分享到:


相關文章: