在我工作的這些年中,經常有人問我是否閱讀過羅伯特-馬丁的《代碼整潔》這本書。當時我不知道書的具體內容,但是後來卻成爲了每個開發人員的“必讀”書籍。
保持代碼結構清晰
在開始編碼時,請思考清楚你自己的程序,如:類,方法(函數)、結構等。
在使用包名來管理類時,儘量避免在一個包中添加大多的類,除非這些類與其包的含義相符合。
考慮的越清楚編寫代碼就越容易,否則,在將來你不得不重構你的代碼。
慎重命名規範
你可能會說命名這件事情很明顯,而且每個人都知道,對類、方法和變量進行良好的命名非常的重要。
是的,但是請你時刻記住。
你始終要記住將RspValidator.java更改爲ResponseValidator.java,將print()更改爲printResponse()來精確的表達你的意圖。
我希望我們永遠不要在程序中看到諸如:String asd這樣的命名規範。
爲您的代碼找到正常的名稱或單詞有助於編寫大量的註釋更直接。
雖然,好的命名規範比編寫大量的註釋更有效,但是在一些特殊的情況下可以採用註釋來說明。
通常情況下,註釋用來解釋業務案例或對維護該案例的開發人員說明其重要的事情。
不要忘記Java中通常採用駝峯命名的方式,類名稱以大寫字母開頭。
解決特定的問題
如果你有一個類命名爲ResponseValidator.java,請確保它僅負責響應驗證,不包括與其無關的職責。
如果要添加額外的功能,請創建一個新的類併爲它命一個有意義的名字。
如果你的方法只需要解決一個特定的問題,儘量避免編寫一個大型方法,因爲其它開發人員可能會很難閱讀。
正確的做法應該是將其分解成一些命名規範的方法,這樣做有助於更加容易的測試它們。
合理的方法參數個數
避免在方法中使用過多的參數,因爲參數過多會直接影響代碼的閱讀,如下所示:
private addUserInformation(String name, String street, String houseNumber, String city, String country).
重構後的代碼如下所示:
private addUserInformation(String name, Address userAddress).
消除冗餘代碼
如果兩個方法中存在重複的代碼,你必須考慮將其提取出第三個方法或單獨的類進行處理,然後在方法中使用提取出來的方法來取代它們。
也許有開發人員說,在同一個方法中便於閱讀,但在我看來用更少或沒有重複的代碼更方便於維護及避免錯誤的產生。
當然,一些好的IDE工具可以使用重構工具將其提取到一個新的方法中。
杜絕硬編碼
有時候我們因爲工作忙或趕項目進度,匆匆忙忙的對某些內容進硬編碼,但是硬編碼卻帶來了很多麻煩,如:維護難、容易導致錯誤。
對於這種情況,建議採用常量、泛型、配置文件進行有效的管理,如:.yml或.properties.
良好的日誌記錄
對於API接口來說,好的日誌記錄可以幫助我們在任何人不熟悉代碼的情況下即時的發現問題,因爲有些API是公司內部其它的開發人員編寫的。
好的日誌記錄,可以幫助我們快速的找到問題並解決問題。