function內 只做一件事情

function內 只做一件事情

function內 只做一件事情

function內 只做一件事情

函式應該只做一件事情,它們應該把這件事情做好,而且
他們應該只做這件事情。

如果函式只做了函式名稱下『同一層抽象概念』的幾個步驟,
這個函式就算是只作了一件事。

可以看出
https://davidchenblog.com/posts/b5a9dd46/#more
上列程式碼包含許多『兩層』的抽象概念,可以透過收縮來重構。

很難將以下程式碼
https://davidchenblog.com/posts/57ffb0cf/#more
做有意義的收縮,只能將if敘述提至includeSetupAndTeardownPages
函式裡面,但這樣僅重新陳述原本的程式碼,並沒有改變程式碼
的層次!

因此,觀察函式是否做超過『一件事情』的另一種方法,是看你
是否能夠從此函式中提煉出另外一個新函式,但此新函式不能
只是重新詮釋原函式的實作過程。