poniedziałek, 6 sierpnia 2012

Ważne, żeby był porządek:)

o czytelności kodu raz jeszcze

Było o tym, jakie stosować nazwy w kodzie, było o komentarzach, a teraz przyszła pora na kolejny wpis dotyczący czytelności kodu. I ponownie poruszam temat błahy, ale mam nadzieję, że rady w nim zawarte komuś się przydadzą:)

Dzisiaj będzie o kolejności, w jakiej atrybuty i metody powinny występować w kodzie, w zależności od ich definicji.

na początku jest stała

Na samym początku powinny być stałe. Dlaczego? Po pierwsze, nie potrzebujemy tworzyć instancji klasy, aby z nich korzystać, a po drugie nie można ich modyfikować. Korzystanie z nich nie wymaga żadnych dodatkowych działań, a brak możliwości modyfikacji sprawia, że nie można za ich pośrednictwem wpłynąć na działanie kodu klasy.

w zależności od widoczności

Jak już umiejscowimy gdzieś consty, to zostają nam jeszcze atrybuty i metody. Tak to zazwyczaj bywa, że i atrybuty i metody mają zdefiniowaną widoczność i jest to pierwsza rzecz, na którą powinniśmy zwrócić uwagę podczas porządkowania ich.

Najpierw powinno być to co jest publiczne. Dlaczego? Publiczne oznacza, że można z tego korzystać poza klasą bądź jej obiektami, czyli są to atrybuty i metody, które interesują wszystkich, którzy chcą w jakiś sposób z niej skorzystać.
Następne powinny być atrybuty i metody chronione, ponieważ to one są w kręgu naszego zainteresowania, gdy rozszerzamy klasę.
Jak łatwo wywnioskować, ostatnie jest to, co jest prywatne, ponieważ nie będziemy z tego korzystali do momenty ingerencji w jej kod źródłowy.

Jak można zauważyć, powyższa kolejność również zależy od ilości wysiłku, jaki trzeba włożyć, aby móc wykorzystać to, co oferuje klasa/jej obiekty przy danej widoczności oraz od tego, jak często będziemy mieli możliwość tego użyć.

klasa i jej instancje

Kolejną istotną kwestią, na którą powinniśmy zwrócić uwagę jest występowanie słowa static przy atrybucie czy metodzie. Dlaczego ma to znaczenie?
Z atrybutów i metod statycznych możemy korzystać bez tworzenia instancji danej klasy, a więc nakład pracy do skorzystania z danej funkcjonalności jest mniejszy. Dlatego też, statyczna metoda powinna znajdować się nad metodą, która jest dostępna jedynie z poziomu instancji klasy.

atrybut, czy metoda

Ostatnią ważną rzeczą jest to, czy atrybut, czy metoda powinna znajdować się wyżej. Zazwyczaj w kodach przyjęło się, że to atrybuty są przed metodami i radzę stosować takie rozwiązanie ze względu na przyzwyczajenia rzeszy innych programistów, z którymi prawdopodobnie przyjdzie Wam współpracować:)

Co do logicznego uzasadnienia takiego, a nie innego porządku?
Atrybuty to części składowe klasy, definiują to, czym ta klasa jest i warto taką informację mieć przed oczami zaraz po tym, jak otworzy się kod tejże klasy. Metody również są istotne, ale to dzięki atrybutom potrafimy identyfikować różne instancje tej samej klasy, to dzięki nim metody mają na czym działać:)