Dobre praktyki programowania – czysty kod
Rozpoczynasz pracę w nowej firmie, dostajesz dostępy i odpalasz nasz ulubiony edytor kodu. Dostajesz pierwsze zadanie, dodanie warunku do walidacji czy użytkownik opłacił abonament. Twoim oczom ukazuje się piękny i czysty kod:
if (isAuth) {
if (userStatus === "active") {
if (sessionValid) {
// Wykonaj operacje dla zalogowanego użytkownika
} else {
// Komunikat o błędzie sesji
}
} else {
// Komunikat o nieaktywnym koncie
}
} else {
// Komunikat o braku autoryzacji
}
I teraz zastanawiasz się czy to rzeczywiście ścieżka którą chciałeś iść, czy może pomysł z hodowlą jedwabników, nie był wcale taki zły.
Co tu się właściwie dzieje? W którym miejscu mam sprawdzić czy użytkownik opłacił abonament. No sprawdzamy czy użytkownik jest zautoryzowany, czy jego status jest aktywny, czy sesja jest zwalidowana, wtedy wykonamy operacje dla zalogowanego użytkownika, ale co jak coś będzie nie tak? Wpadniemy w któregoś elsa. Nie można tego napisać jakoś prościej? To przecież tylko 3 warunki – ale przez „drabinkowość” takiego kodu, jego zrozumienie jest trudne..
Poprawa tego, może nastąpić poprzez zastosowanie „early return” – w ten sposób nie zmieniamy logiki działania kodu, a zwiększamy jego czytelność.
if (!isAuth) {
// Komunikat o braku autoryzacji
return;
}
if (userStatus !== "active") {
// Komunikat o nieaktywnym koncie
return;
}
if (!sessionValid) {
// Komunikat o błędzie sesji
return;
}
// Wykonaj operacje dla zalogowanego użytkownika
Teraz jasno widać, w których momentach, pojawi się jaki komunikat, a kiedy operacje zalogowanego użytkownika zostaną wykonane. Siadasz więc i dodajesz nowego ifa, przed operacjami dla zalogowanego użytkownika:
if (!userPaidSubscription) {
// Komunikat o nie opłaceniu subskrybcji
return;
}
I cyk, zadanko zrobione. Zamiast grzebać w spaghetti i próbować zrozumieć co się tu dzieje, zyskujemy czas na zapoznanie się z nowymi współpracownikami.
Ten prosty przykład pokazuje, jak bardzo czysty kod jest potrzebny. Nie łatwo jest sprawić, by kod był uznawany za czysty, jednak jaka tak naprawdę jest definicja czystego kodu? Według mnie, CZYSTY KOD, to taki, który jest CZYTELNY, PROSTY I ŁATWY DO UTRZYMANIA. Oczywiście kod powinien spełniać znacznie więcej funkcji, powinien być TESTOWALNY i spełniać reguły SOLID, DRY. Jednak nikt nie mówił że będzie łatwo, nasza praca polega na tworzeniu pewnych rzeczy z niczego, dlatego robienie tego dobrze i tak, by inni mogli się w tym łatwo odnaleźć, powinno być dla nas najważniejsze.
Dodaj komentarz