clean code(一)
阿新 • • 發佈:2018-11-24
程式碼整潔之道對於程式的重構及可讀性至關重要。開始整潔之道吧!!!
一、抽離try catch 模組
public void delete(Page page){ try { deletePageAndAllReference(page); }catch(Exception e){ logError(e); } } private void deletePageAndAllReference(){ deletePage(); registry.deleteRefence(page.name); configKeys.deleteKey(page.name.makeKey()); }private void logError(Exception e){ logger.log(e.getMessage()); }
將try和catch程式碼的主體部分抽離出來。delete只與錯誤處理有關,容易理解。deletePageAndAllReference只與完全刪除一個page有關。
二、註釋
好的註釋儘量利用方法名稱來傳遞資訊。註釋提供了有關實現的有用資訊,而且還提供了某個決定後面的意圖。用於警告會出現某種後果的註釋也是有用的
//TODO-MdM these are not need //we expected this to go away when we do the checkout modelVersionInfo makeVersion() throws Exception{ return null; }
TODO: + 說明:在標識處有功能程式碼待編寫,待實現的功能在說明中會簡略說明。
對於程式碼中多餘的註釋應該刪除,可能讀註釋的時間都比讀程式碼花費的時間都長。能用函式或變數時就別用註釋。
三、格式
每個專案開始之前都應該提前定義好團隊規則,包括在什麼地方放置括號、縮排幾個字元、如何命名類、變數和方法等。
四、物件和資料結構
過程式程式碼(使用資料結構的程式碼)便於在不改動既有資料結構的前提下新增新函式,面向物件程式碼便於在不改動既有函式的前提下新增新類。
public class Square{ public Point topLeft; public double side; } public class Rectabgle{ public Point topLeft; public double height; public double width; } public class Circle{ public Point center; public double radius; } public class Geometry{ public final double PI=3.141592653589793; public double area(Object shape){ if (shape instanceof Square){ Square s= (Square) shape; return s.side*s.side; } ... } }