1. 程式人生 > >clean code(一)

clean code(一)

程式碼整潔之道對於程式的重構及可讀性至關重要。開始整潔之道吧!!!

一、抽離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 model
VersionInfo 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;
            }
            ...
        }
    }