主題:函數(shù)
在編程的早年歲月中,系統(tǒng)由程序和子程序組成。后來,在Fortran和PL/1的年代,系統(tǒng)由程序,子程序和函數(shù)組成。如今,只有函數(shù)存活了下來。函數(shù)式都有程序中的第一組代碼。本章將討論如何寫好函數(shù)。
怎么樣才能讓函數(shù)表達(dá)其意圖?該給函數(shù)賦予哪些屬性,好讓讀者一看就明白是屬于怎樣的程序?
1.短小:函數(shù)的第一規(guī)則是要短小。第二規(guī)則還是要短小。
將多行的語句塊換成函數(shù),這樣每個函數(shù)一目了然,每個函數(shù)都只說一件事
代碼塊和縮進(jìn):if,else,while等語句,其中的代碼庫應(yīng)該只有一行,改行大抵應(yīng)該是一個函數(shù)調(diào)用語句,這樣不但能保持函數(shù)短小,而且因為塊內(nèi)調(diào)用的函數(shù)擁有較具說明性的名稱,而增加了文檔上的價值。
這樣也意味著函數(shù)不應(yīng)該大到足以容納嵌套結(jié)構(gòu)。所以,函數(shù)的縮進(jìn)層級不該多余一層或二層。這樣的函數(shù)易于閱讀和理解
如果每個例程都讓你感到深合已意,那就是整潔代碼
2.函數(shù)參數(shù):
最理想 的參數(shù)數(shù)量是0,其次是1,2;應(yīng)盡量避免3參數(shù),除非有足夠的理由!
輸出參數(shù)比輸入?yún)?shù)還要難以理解
3.方法名無副作用,函數(shù)名為checkedPassWord()里面還有initialize()函數(shù);可重命名checkPasswordAndInitializesession,但違背了函數(shù)只做一件事情原則
4.使用異常代碼代替返回錯誤碼
5.抽離try/catch:他們搞亂了代碼結(jié)構(gòu),把錯誤處理與正常流程混為一談。最好把try和catch代碼塊的主動部分抽離出來,另外形成函數(shù)。
6.重復(fù)是軟件中的一切的邪惡的根源。
7.結(jié)構(gòu)化編程:一進(jìn)一出
上述信息來之《代碼整潔之道》
新聞熱點
疑難解答