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.
Mimo, że powiedziałem, że SOLID jest niezależne od języków programowania, to
jednak musimy rozważyć zastosowanie tych zasad w kontekście, a właściwie w dwóch
kontekstach dwóch różnych grup języków.
Więc jeśli patrzymy na języki programowania tak
wysoko poziomowy, to możemy rozróżnić dwie grupy.
Pierwsza to są języki statycznie typowane, takie, w których sami musimy definiować
typy, a druga grupa to języki dynamicznie typowane, takich, w których te typy są
nadawane przez interpreter dynamicznie, na podstawie interpretacji
kodu, które napiszemy.
I zajmijmy się teraz językami statycznie typowanych.
Jak współgra SOLID z językami statycznie typowanych?
Ponieważ SOLID to zestaw zasad dla programowania obiektowego.
Naturalnie, statycznie typowane języki będą dużo więcej zyskiwać.
Kod napisany w statycznie typowany języku będzie dużo więcej zyskiwał
dzięki zastosowaniu zasad SOLID.
A to dlatego, że statyczne typy będą stały na straży kontraktu, których pilnują.
Z kolei te zasady kontraktu komunikacji między klasami, między częściami kodu.
To jest pierwsza część, a druga część jest taka, że statycznie typowane języki mają w
sobie naturalne definiowanie interfejsów.
Taki mechanizm naturalnego definiowania interfejsów, który stanowi
też stałą praktykę budowania oprogramowania w tych statycznie
typowanych językach, czego nie ma z kolei w dynamicznych językach, bo
będziemy mieć interfejsy w Javie.
W tym skrypcie SI szarpie i to jest coś, co programiści tych technologii
używają na co dzień.
Coś, co jest łatwe do zrozumienia, coś, co jest intuicyjne wręcz przy budowaniu kodu.
Więc te naturalne definiowanie interfejsu i cały ten dobrobyt, który daje nam
statycznie typowany język, będzie dobrze współgrał z zasadami SOLID.