Wiem, że może to być bardzo specyficzne dla każdego przypadku użycia, ale zbyt często zastanawiam się nad tym. Czy istnieje ogólnie preferowana składnia.
Nie pytam, jakie jest najlepsze podejście do funkcji, pytam, czy powinienem wyjść wcześniej, czy nie powinienem wywoływać funkcji.
Zawiń, jeśli wokół wywołania funkcji
if (shouldThisRun) {
runFunction();
}
Mają if ( wartownik ) w funkcji
runFunction() {
if (!shouldThisRun) return;
}
Ta ostatnia opcja oczywiście może zmniejszyć duplikację kodu, jeśli ta funkcja jest wywoływana wiele razy, ale czasami dodanie jej tutaj jest błędne, ponieważ może to oznaczać, że funkcja traci jedną odpowiedzialność .
Oto przykład
Jeśli mam funkcję updateStatus (), która po prostu aktualizuje status czegoś. Chcę tylko zaktualizować status, jeśli status się zmienił. Znam miejsca w moim kodzie, w których status może się zmienić, i znam inne miejsca, w których zdecydowanie się zmienił.
Nie jestem pewien, czy to tylko ja, ale czuję się trochę brudnie, aby sprawdzić tę funkcję wewnętrzną, ponieważ chcę zachować tę funkcję tak czystą, jak to możliwe - jeśli ją wywołam, oczekuję, że status zostanie zaktualizowany. Ale nie wiem, czy lepiej zawrzeć połączenie w kilku miejscach, w których wiem, że może się nie zmienić.