1、短小
函數(shù)的第一規(guī)則就是短?。?/p>
20行的函數(shù)是最佳的;
每個函數(shù)只做一件事,并且函數(shù)都以順序帶到下一個函數(shù),這就是函數(shù)應該到達的短小程度。
2、只做一件事
函數(shù)應該只做一件事。做好一件事。只做這一件事。
判斷函數(shù)是否只做一件事,看是否還能在拆分出一個函數(shù);
3、每個函數(shù)一個抽象層級
要確保函數(shù)只做一件事,函數(shù)中的語句都要在一個抽象級上。
自頂向下讀代碼;
4、switch語句
用抽象工廠來代替;
5、使用描述性的名稱
函數(shù)的名字正好描述了該函數(shù)所做的事;要做到見名知意;
6、函數(shù)參數(shù)
盡量避免三個參數(shù)以上;參數(shù)越多測試覆蓋所有可能的值的組合就越多;
如果參數(shù)過多就該將參數(shù)封裝成類了;
7、無副作用
還是“只做一件事”的原則;
如果該方法做了兩件事一定要在函數(shù)名中體現(xiàn),否則就會發(fā)生不可預知的錯誤;
8、分割指令與詢問
9、使用異常代替返回錯誤碼
使用異常代替錯誤碼,錯誤的處理代碼就能從主路徑代碼中分離出來。得到簡化;
抽離出try/catch代碼塊,做成函數(shù);使用異常代替錯誤碼,新的異常就可以從異常類派生出來,無需重新編譯或重新部署;
10、別重復自己
如果過多的重復代碼就應該抽取出來;
面向方面編程(Aspect Oriented Programming)、面向組件編程(Component Oriented Programming)也都是消除重復的一種策略。
總結一句:消滅重復
11、結構化編程
12、如何寫出這樣的函數(shù)
分解函數(shù)、修改名稱、消除重復
總結:
大師級程序員把系統(tǒng)當作故事來講,而不是當作程序來寫。
真正的目標在于講述系統(tǒng)的故事,編寫的函數(shù)必須干凈利落地拼裝在一起,形成一種精確清晰地語言,幫你講故事。