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.
Omówiliśmy interakcje zasad SOLID z językami statycznie typowanych.
Teraz pora na języki dynamicznie typowane, takie jak RUBI, Python
czy uwaga JavaScript.
I jak przebiega ta interakcja zasad SOLID z tymi językami?
Jak wygląda implementacja tych zasad w językach dynamicznie typowanych?
Przede wszystkim języki dynamiczne typowane są wolne od tego
całego balastu definicji typów.
Kod tych języków może być przejrzysty i czytelniejszy, więc mamy
łatwiejszą drogę do zrozumienia procesów logicznych, struktury kodu,
struktury, funkcji, struktury klas Właśnie w językach dynamicznie
typowanych jest on czytelniejszy.
Często te języki dynamicznie typowane, jak Python czy Ruby są bliskie
językowi naturalnemu, jak np.
język angielski, więc czytając kod w takim języku łatwiej nam zrozumieć przebieg
logiki biznesowej, łatwiej nam zrozumieć przebieg kontraktów między klasami,
łatwiej nam zrozumieć wyjątki, które są w takim kodzie zaimplementowane.
To wszystko jest dobrodziejstwem dynamicznie typowanych języków.
Ale z drugiej strony, jeśli chodzi o zasadę SOLID w dynamicznie typowanych
językach będziemy mieć utrudnione definiowanie kontraktów i brak naturalnego
mechanizmu interfejsów, bo są to języki dynamiczne.
Nie potrzebujemy wcześniej definiować interfejsu, który spełnia dana klasa.
Wszystko się odbywa dynamicznie, często na zasadzie tak timingu jak np.
w drugim, gdzie interpreter domyśla się zachowania,
domyśla się typu obiektu na podstawie jego zachowania.
Będziemy mieć utrudnione definiowanie tych kontraktów.
O czym warto pamiętać?
Gdzie za cenę czytelności i przejrzystości.
Budowanie interfejsów będzie trudniejsze, będzie wymagało więcej subtelności i
większego nacisku położonego na testowanie i odpowiednią strukturę testów w kodzie.