Czysty kod - czym jest, dlaczego jest tak ważny i jak nadawać nazwy w kodzie?
Witam! Z racji tego, że jakiś czas temu ukończyłem kurs "Clean Code" pragnę podzielić się tutaj wiedzą, którą z niego wyciągnąłem. W pierwszym wpisie z serii czystego kodu poruszę temat tego czym w ogóle on jest, dlaczego jest tak ważny oraz przedstawię, w jaki sposób nazywać "rzeczy" w kodzie. Wszystko będzie poparte przykładami, które udowodnią ogromną wartość czystego kodu 😉
Czym jest czysty kod?
Czysty kod to czytelny, zorganizowany i zrozumiały kod źródłowy, który jest łatwy do utrzymania, rozbudowy i współpracy. Jest to umiejętność uniwersalna i niezależna od żadnej konkretnej technologii. Gdy nauczymy się pisać czysty kod, to będziemy już taki pisać w Javie, JavaScripcie, Pythonie i każdym innym języku programowania.
Dlaczego czysty kod jest tak ważny?
- Umożliwia stworzenie łatwego do zrozumienia, utrzymania i rozszerzenia kodu, który będzie czytelny i przystępny dla innych oraz dla nas samych.
- Przyczynia się do poprawy komunikacji oraz ułatwienia współpracy w zespole programistycznym.
- Sprawi, że napisany przez nas kod będą po części rozumieć osoby niezwiązane z technologią.
- Ułatwi nam powrót do kodu po czasie (gdy w przyszłości wymyślimy jakąś nową funkcjonalność dla naszej aplikacji czy zwyczajnie będziemy chcieli zrefaktoryzować kod, to znacznie łatwiej będzie nam się za to zabrać).
- Zmniejszy ryzyko błędów i nieporozumień.
- Zwiększy wydajność zespołu i oszczędność czasu za pomocą wyeliminowania zbędnych analiz niejasnego kodu.
Dlaczego nazewnictwo ma tak duże znaczenie?
Pierwsza i najważniejsza zasada czystego kodu. Dlaczego nazewnictwo w ogóle ma znaczenie? Oczywiście dlatego, że dobrze nazwane pola, metody i klasy pozwalają osobie analizującej kod na zrozumienie go bez dogłębnej analizy jego szczegółów. Nazwy powinny być znaczące i jak najbardziej opisowe! Rozważ taki przykład:
Z pewnością zgodzisz się, że kod z pierwszego obrazka nie jest zbyt znaczący ani opisowy. Teoretycznie mogłoby być jeszcze gorzej, ponieważ sporo osób zaczynających programować nazywa rzeczy w kodzie jedną literą lub kombinacją litery i cyfry. Napewno trzeba się strzec takiego podejścia! Kod pokazany na drugim obrazku z kolei jest czysty i znaczący. Zawiera opisowe nazwy zmiennych, metod oraz klas. I tak w skrócie powinny wyglądać dobre nazwy!
Jak nazywać pola w kodzie?
- Pisz wszystkie nazwy po angielsku. Kod piszemy tylko po angielsku.
- Stosuj zrozumiałe i opisowe nazwy tak, aby nazwa pola jednoznacznie opisywała jego zawartość. Unikaj skrótów, skrótowców oraz wyrażeń slangowych, które mogą być niejasne dla innych programistów.
- Używaj konwencji nazw odpowiedniej dla twojego języka programowania. Przykładowo dla Javy będzie to camelCase, a dla Pythona snake_case. Zorientuj się jakiej konwencji używa się pisząc w twoim języku.
- Unikaj zbyt długich nazw. Choć nazwy powinny być jak najbardziej opisowe, to nadmiarowa ilość informacji w nich zawarta może sprawić, że kod będzie trudniejszy do przeczytania. Idealna nazwa to taka, która jest zwięzła i opisowa.
- Gdy zmienna przechowuje wartość typu boolean, to jej nazwa powinna być pytająca.
Jak nazywać metody i funkcje w kodzie?
- Podobnie jak nazwy pól, pisz wszystkie nazwy metod po angielsku.
- Stosuj zrozumiałe i opisowe nazwy tak, aby nazwa metody jednoznacznie opisywała jej działanie. Unikaj skrótów, nazw, które nie opisują działania metody i mylących nazw, wprowadzających w błąd.
-
Używaj konwencji nazw odpowiedniej dla twojego języka programowania.
-
Zachowuj spójność nazw. Trzymaj się ustalonej konwencji nazewniczej w całym projekcie. Przykładowo jeśli w innych miejscach używasz "delete" do oznaczania metod usuwających dane, to stosuj również "delete" w innych, podobnych metodach zamiast np. remove czy destroy.
- Unikaj zbyt długich nazw. Pamiętaj! Idealna nazwa to taka, która jest zwięzła i opisowa.
- Unikaj także zbyt ogólnych nazw takich jak execute() czy operation().
- Gdy metoda zwraca wartość typu boolean, to jej nazwa powinna być pytająca, podobnie jak w przypadku nazw pól typu boolean.
Jak nazywać klasy?
- Tak jak w przypadku nazw pól i metod, pisz wszystkie nazwy klas po angielsku.
- Używaj konwencji nazw odpowiedniej dla twojego języka programowania. Przykładowo w Javie klasy nazywa się według konwencji PascalCase. Zorientuj się, jak wygląda to w twoim języku.
- Używaj rzeczowników. Nazywaj klasy tak, aby odzwierciedlały to, czym jest reprezentowany przez tę klasę obiekt.
- Unikaj zbyt długich, a także zbyt ogólnych nazw.
Podsumowanie
Jak sam widzisz, wiele konwencji nazywania powtarza się w przypadku pól, metod oraz klas, więc ich nauka i przyswojenie powinny być jeszcze prostsze.
To dopiero pierwszy post z serii czystego kodu, jednak bardzo istotny, ponieważ przedstawiłem w nim jeden z najważniejszych konceptów tego podejścia. Omówiliśmy sobie także krótko czym jest i dlaczego jest on tak ważny. W kolejnych wpisach zajmiemy się opisem pozostałych, ważnych konceptów czystego kodu, które pomogą ci go lepiej opanować.
Na ten moment proponuję i bardzo polecam ci zajrzeć do twoich projektów, a następnie spojrzeć na nazwy które tam zastosowałeś. Sprawdź, czy wszystkie są czytelne i opisowe. Upewnij się także, czy gdy odłożysz projekt i wrócisz do niego za miesiąc, to czy pozwolą ci na swobodną analizę kodu. Jeśli nie, to już dziś przeprowadź refaktoryzację, ulepsz swój projekt i uczyń swoj