Chapter 3 - 函式 - 2
使用具描述能力的名稱
不要害怕名字過長,若取了有性質的函式名稱就較能符合「當每個你看到的函式,執行結果都與你想的差不多代表為 Clean Code」。
函式的參數
函式的參數越少越好,因為參數的存在也會影響著你對函式的預期,所以最理想的情況為 0 參數。
一個參數
與這個參數有關的問題 - boolean fileExits("Myfile")
對這個參數做某種操作,然後回傳 - InputStream fileOpen("Myfile")
事件,利用參數去修改系統狀態 - passwordAttemptFailedNtimes(int attempts)
兩 ~ 三個參數
兩個參數影響函式的預期就更多,所以可以轉成一個參數就好好利用。物件型態的參數、參數串列
利用物件型態或陣列去減少參數個數是不錯的方法 Circle makeCircle(double x, double y, double radius);
Circle makeCircle(point center, double radius);
指令和查詢的分離
如果函式除了做某件事情後,還回傳了某個問題的答案,就等於做兩件事
public boolean set(String attribute, String value);
if(set("username", "unclebob"))...
所以讀者看到此段 if 會容易產生誤解且疑惑,所以要將查詢與指令分開
if(attributeExists("username")){
setAttribute("username", "unclebob");
...
}
利用例外處理取代回傳錯誤碼
錯誤處理本身就是一件事Don't Repeat Yourself
n 個重複的程式碼,代表修改要花 n 倍時間。
上一篇:
讀書心得 - Clean Code - Chapter 3 (1)
下一篇:
讀書心得 - Clean Code - Chapter 4
0 意見:
張貼留言