ZasadyDRY, KISS i YAGNI
To są trzy zasady, o które każdy programista powinien dbać, ponieważ dotyczą one czystego kodu. W tym artykule zrozumiemy, co oznacza każda z nich.
ZasadaDRY
DRY to skrót od Don’t Repeat Yourself (nie powtarzaj się). W książce „The Pragmatic Programmer”, możemy zobaczyć taką definicję DRY:
Każdy fragment wiedzy musi mieć pojedynczą, jednoznaczną, autorytatywną reprezentację w systemie.
To oznacza, że nie powinieneś mieć zduplikowanego kodu. Łatwiej jest utrzymywać kod, który jest tylko w jednym miejscu, ponieważ jeśli trzeba coś zmienić w kodzie, wystarczy zmienić w jednym miejscu. Poza tym, jeśli masz ten sam kod w dwóch lub więcej miejscach, szansa na to, że ten kod stanie się inny w czasie jest wysoka, a kiedy to się stanie, stanie się to łatwym sposobem na wprowadzenie błędów do systemu. Zduplikowany kod również sprawia, że kod jest bardziej złożony i niepotrzebnie większy.
Nie powinieneś również pisać dwuznacznego kodu. Twoje klasy, twoje zmienne, twoje funkcje, powinny mieć konkretną nazwę, a ich nazwa musi odpowiadać ich odpowiedzialności. Jeśli masz funkcję, powinieneś wiedzieć co ona robi czytając tylko jej nazwę, bez potrzeby czytania kodu wewnątrz niej.
W książce 'The Pragmatic Programmer’ możemy również zobaczyć, że:
DRY jest o duplikacji wiedzy, intencji. Chodzi o wyrażenie
tej samej rzeczy w dwóch różnych miejscach, być może na dwa zupełnie różne sposoby
To znaczy, że nie chodzi tylko o kopiowanie i wklejanie kodu – tak, to też jest uwzględnione – ale wykracza poza to. Chodzi również o posiadanie różnego kodu, który robi to samo. Być może możesz mieć inny kod w dwóch lub więcej miejscach, ale robią one tę samą rzecz na różne sposoby, tego również należy unikać.
Zasada KISS
KISS jest akronimem od Keep It Simple, Stupid. Zasada ta mówi o tym, aby twój kod był prosty. Powinieneś unikać niepotrzebnej złożoności. Prosty kod jest łatwiejszy w utrzymaniu i łatwiejszy do zrozumienia.
Możesz zastosować tę zasadę w projekcie i w implementacji kodu. Powinieneś wyeliminować zduplikowany kod, powinieneś usunąć niepotrzebne funkcje, nie używaj niepotrzebnych zmiennych i metod, używaj nazw dla zmiennych i metod, które mają sens i pasują do ich odpowiedzialności, i zawsze, gdy jest to możliwe, postępuj zgodnie ze znanymi standardami tworzenia kodu. Powinieneś również oddzielić obowiązki swoich klas od obowiązków warstw projektu.
Czasami nie musisz implementować czegoś nowego, aby zaspokoić swoje potrzeby, możesz po prostu wykorzystać cechy języka programowania, którego używasz. W tym celu, dobrze jest znać cechy języka programowania, z którym pracujesz.
Jeśli pracujesz w kodzie, który jest już zaimplementowany i widzisz coś, co nie jest konieczne lub mogłoby być prostsze, powinieneś rozważyć refaktoryzację.
Zasada YAGNI
YAGNI oznacza You Ain’t Gonna Need It. Jest to zasada pochodząca z metodologii rozwoju oprogramowania Extreme Programming (XP). Zasada ta mówi, że nie należy tworzyć funkcji, które nie są naprawdę potrzebne.
Zasada ta jest podobna do zasady KISS, z tą różnicą, że obie dążą do prostszego rozwiązania. Różnica między nimi polega na tym, że YAGNI skupia się na usunięciu niepotrzebnych funkcjonalności i logiki, a KISS skupia się na złożoności.
Ron Jeffries, jeden ze współzałożycieli XP, powiedział kiedyś:
Zawsze wdrażaj rzeczy, kiedy ich rzeczywiście potrzebujesz, nigdy kiedy tylko przewidujesz, że ich potrzebujesz.
Podsumowanie
Przestrzeganie tych zasad, pozwoli Ci pisać lepszy kod. Pamiętaj, że czysty kod jest łatwiejszy w zarządzaniu, łatwiejszy do zrozumienia i na pewno zaoszczędzi Twój czas, gdy będziesz musiał coś zmienić lub zaimplementować. Unikaj używania zduplikowanego kodu, staraj się utrzymać swój kod tak prosty jak to tylko możliwe, i implementuj funkcje tylko wtedy, gdy jest to naprawdę konieczne.