preview

Nazwy zmiennych, funkcji, metod

Byłem wczoraj na wykładzie o AngularJS. Prowadzący pokazał kod aplikacji napisanej przy użyciu tej biblioteki. Jedna linijka przyciągnęła mój wzrok:

Beer.like(beer);

Na początku nie podobało mi się to że na obiekcie Beer wywoływana jest metoda, do której przekazywany jest inny obiekt beer. Jak powiedział mój kolega małe piwo przekazywane jest do dużego. Nie miałem okazji zapytać autora dlaczego użył takiej konstrukcji bo musiałem wyjść szybciej z sali. Dzisiaj razem z tym samym kolegą ustaliliśmy że małe piwo wcale nie było obiektem tylko łańcuchem znaków. Mylne było nazewnictwo.

Warto czasem zatrzymać się na chwilę podczas programowania i zastanowić nad nazwą zmiennej, metody, tabeli w bazie danych, kolumny czy procedury. Dobre nazewnictwo ułatwia pracę w zespole. Nie jest ważne to czy stosuje się CammelCase, pascalCase czy nazwy_z_podkreślnikami. Ważne jest to żeby nazwy były spójne w całym projekcie i mówiły dokładnie o tym co jest przechowywane w zmiennej bądź dokładne to, co dana metoda robi.

Sprawdzałem ostatnio kod współpracownika. Nie spodobała mi się nazwa zmiennej i dodałem komentarz „Nazwa zmiennej nic nie mówi”. Zmienna nazywała się temp. Nie zdążyłem sprawdzić całego kodu a kolega już był przy moim biurku. Mówił że zmienna jest używana tylko w jednym miejscu i że nazwa tutaj właściwie nie ma znaczenia. Moim zdaniem nazwa zawsze ma znaczenie i to samo mu powiedziałem. Wyszło w końcu że tak właściwie nie wiedział jaką nazwę dać. Jest na to prosta rada. Zastanów się co tak właściwie jest w tej zmiennej i zrób opisową nazwę.

To samo tyczy się nazw metod. Ważne jest żeby ustandaryzować nazwy w całym projekcie. Nie mieszać różnych stylów w nazwach tworząc coś takiego jak ThisMethodIs4_Something. Ciężko się czyta taki kod. Ważne jest to żeby nazwa mówiła co dana metoda robi a jeszcze ważniejsze żeby robiła tylko to na co nazwa wskazuje. Jeśli metoda nazywa się prepareEmail to powinna przygotowywać wiadomość. Nie powinna jej wysyłać. Jeżeli miałaby przygotowywać i wysyłać to lepszą nazwą byłoby prepareAndSendEmail. Dobre nazewnictwo ułatwia pracę przy modyfikacji kodu.

Z pozoru mało znacząca sprawa jak nazewnictwo w rzeczywistości potrafi oszczędzić sporo czasu przy szukaniu błędów albo przy dopisywaniu nowych funkcjonalności z wykorzystaniem istniejącego już kodu. Warto czasem poświęcić kilka minut na zastanowienie się żeby w przyszłości zyskać kilka godzin.

Obrazek z freepik

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *