代碼整潔之道筆記
[TOC]
函數(shù)
短小
每個函數(shù)都應(yīng)該行數(shù)越少越好,同時縮進(jìn)層級也不能太多,盡量局限于一級。
只做一件事
函數(shù)只做一件事情,起碼在抽象層級上只做一件事情。
public static String RenderPageWithSetupsAndTeardowns(
PageDate pageData, boolean isSuite) throws Exception {
if (isTestPage(pageData)) {
includeSetupAndTeardownPages(pageData, isSuite);
return pageData.getHtml();
}
}
該函數(shù)有三個步驟:
- 判斷是否為測試頁面
- 如果是則 XXXXXX
- 渲染HTML頁面
但是這是在該函數(shù)名下的同一個抽象層的動作。
函數(shù)的抽象層級
向下規(guī)則:每個函數(shù)后面都跟著下一抽象層的函數(shù),逐步向底層調(diào)用
函數(shù)命名
testTableHtml 比 RenderPageWithSetupsAndTeardowns 的命名好的多。
使用描述性的名稱。
使用動名詞對
writeField(name) 比 write(name) 更加清楚的說明要寫入的是Field
函數(shù)參數(shù)
當(dāng)然是越少越好,參數(shù)越少,寫測試用例也越輕松。
無副作用
public boolean checkPassword(String userName, String password) {
//user auth
//init session
}
上面的方法在驗證用戶信息成功之后初始化會話,存在時序耦合性。當(dāng)別人想調(diào)用這個方法檢查用戶的時候就會有其他風(fēng)險。所以改成下面的命名會好點
public boolean checkPasswordAndInitSession(String userName, String password)