Tworzenie kodu według najlepszych praktyk
2 godz. 45 min · Full-stack i Programowanie
Rafał PiekaraSoftware KomandosNie zrozumiesz SOLIDa bez teoretycznych podstaw. Przejdziemy przez założenia stojące za każdą z nich. Przeanalizujemy problemy, które możesz spotkać oraz dowiesz się dlaczego ciągle jeszcze tak wielu programistów nie stosuje się do tych zasad.
Ruby i Typescript to technologie, które świetnie odzwierciedlają uniwersalizm SOLIDa. Te złote zasady działają w językach dynamicznie typowanych i interpretowanych jak Ruby oraz przy statycznym typowaniu na przykładzie Typescript.
Zanim zabierzesz się za programowanie warto poćwiczyć SOLIDny sposób myślenia. Zmierzysz się z zadaniami, w ramach których będziesz projektować kod tak, aby wszystkie zasady SOLID znalazły w nim swoje zastosowanie.
Prawda jest taka, że kod, z którym w większości pracujemy ma swoją historię. Czasami historia ta jest tak bolesna, że klasy i metody są zagmatwane, poplątane i trudne w utrzymaniu. Gdy dotrzesz do tego miejsca będziesz mieć w arsenale wszystkie potrzebne narzędzia, żeby zmierzyć się z zadaniami praktycznymi, które przekształcą kod legacy w SOLIDne arcydzieło.
Tak ważny temat, jak testowanie nie może zostać pominięty. Między innymi po to też stosujemy zasady SOLID, żeby nasz kod praktycznie sam się testował. Napiszesz więc testy, których wzorce możesz wykorzystać w dowolnym projekcie, dowolnej technologii, jeśli tylko kod, który testujesz będzie spełniał wymagania zasad SOLID.
Nie ma znaczenia, czy dopiero zaczynasz przygodę z programowaniem, czy też jesteś starym wyjadaczem, który klasami i interfejsami myśli przy zagryzaniu tosta na śniadanie. Ten kurs jest właśnie dla Ciebie. Technologia ani język programowania też nie mają znaczenia. Zasady SOLID to uniwersalny zbiór. Ich znajomość sprawi, że Twój kod będzie lepszy, łatwiejszy w utrzymaniu i odporny na perturbacje i zmiany.
Najwyższa pora omówić poszczególne zasady SOLID.
Pierwsza Na pierwszy ogień leci zasada Single Responsibility principle, czyli
zasada pojedynczej odpowiedzialności I na czym polega zasada SRP?
Otóż zasada SRP mówi nam o tym, że każda klasa powinna mieć
tylko jeden powód do zmiany, czyli tylko jedna przyczyna biznesowa np.
może wprawić naszą klasę w inny stan, może zmienić jej stan.
Bob Martin idzie jeszcze dalej.
Mówi, że każda klasa powinna odpowiadać względem tylko jednego aktora.
I nad tym się chwilę zatrzymam.
W następnym przykładzie, który będzie już przykładem praktycznym, bo to jest
szalenie ciekawe, w jaki sposób możemy popatrzeć na KOD wobec tej
odpowiedzialności względem aktora.
Kto może być aktorem w aplikacji?
Tak upraszczając, często mówimy, że aktorem aplikacji jest
użytkownik albo system. Taka jest integracja.
Ale Robert Martin idzie głębiej.
On jako aktora aplikacji pokazuje konkretną rolę w biznesie,
konkretną rolę w firmie.
Ale nie będę spoilerować przed następną lekcją.
Będziemy o tym mówić szerzej na podstawie tych aktorów
i można powiedzieć szerzej, że właśnie zasada pojedynczej odpowiedzialności tak
naprawdę mówi o tym, że klasa powinna robić jedną, tylko jedną rzecz.
I mamy pewne symptomy pogwałcenia takiej zasady.
Pierwszym takim symptomem jest, gdy musimy zmodyfikować kod w jednym miejscu.
I ta modyfikacja pociąga za sobą modyfikacje w różnych
miejscach w aplikacji np.
musimy dodawać jakieś dodatkowe i dodatkowe warunki,
wywoływać dodatkowe metody.
To jest symptom, że nasz kod w różnych miejscach robi zdecydowanie za dużo.
Innym symptomem jest sytuacja w trakcie merge owania
naszego kodu w gicie w postaci np.
pull request ów, gdy w trakcie prac nad funkcjami mamy zbyt dużo
merge konfliktów np.
realizując się do mastera cały czas i pull request jej realizowanie stają się
męką i się ciągną, bo ciągle jakieś konflikty, ciągle coś nie przechodzi.
Zaciągnięcie nowej gałęzi każdego dnia powoduje rozwiązywanie masy konfliktów.
To oznacza, że ten sam kod jest modyfikowany z różnych przyczyn,
w tym samym krótkim czasie.
Konflikty rodzą się wtedy, kiedy więcej niż jeden programista pracuje
nad jedną częścią kodu.
To jest znak, że zasada pojedynczej odpowiedzialności jest
gwałcona i kod kot robi za dużo rzeczy.
Zasada SRP nie bez przypadku jest na pierwszym miejscu tego akronimu SOLID.
Jest ważna, jest według mnie podstawą w programowaniu i jest podstawową zasadą
jeśli chcemy tworzyć dobre programowanie obiektowe, to zasada SRP
jest tą, od której zawsze powinniśmy zaczynać patrząc i pisząc nasz kod.
A w następnej lekcji przejdziemy do praktycznego przykładu.