To chyba świetny pomysł!
Mam problem z dzieleniem długich liniowych sekwencji akcji na osobne funkcje wyłącznie w celu zmniejszenia średniej długości funkcji w bazie kodu:
function step1(){
// ...
step2(zarb, foo, biz);
}
function step2(zarb, foo, biz){
// ...
step3(zarb, foo, biz, gleep);
}
function step3(zarb, foo, biz, gleep){
// ...
}
Teraz faktycznie dodałeś wiersze źródła i znacznie zmniejszyłeś całkowitą czytelność. Zwłaszcza jeśli przekazujesz teraz wiele parametrów między każdą funkcją, aby śledzić stan. Yikes!
Jeśli jednak udało Ci się wyodrębnić jedną lub więcej linii do czystej funkcji, która służy jednemu, wyraźnemu celowi ( nawet jeśli wywoływana jest tylko raz ), to poprawiłeś czytelność:
function foo(){
f = getFrambulation();
g = deglorbFramb(f);
r = reglorbulate(g);
}
Prawdopodobnie nie będzie to łatwe w rzeczywistych sytuacjach, ale elementy czystej funkcjonalności można często wypróbować, jeśli się nad tym zastanowić wystarczająco długo.
Będziesz wiedział, że jesteś na dobrej drodze, gdy masz funkcje z ładnymi nazwami czasowników i kiedy ich funkcja rodzica wywołuje je, a cała rzecz praktycznie brzmi jak akapit prozy.
Potem, kiedy wrócisz kilka tygodni później, aby dodać więcej funkcji i okaże się, że możesz ponownie użyć jednej z tych funkcji, to och, zachwycająca radość! Cóż za cudowna promienna radość!