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.
Mówiłem o tym, że zasady SOLID to jest temat trochę kontrowersyjny.
Otóż są takie głosy w społeczności programistycznej, że tematyka Solid jest
trochę passé i teraz mamy już tyle nowych wzorców i
nowych frameworków, które same wprowadzają swoje różnego rodzaju zasady, że nie
musimy się tak naprawdę skupiać nad dobrymi praktykami typu SOLID,
bo tak naprawdę trzeba szybko integrować kod, trzeba szybko pisać, a to czy ktoś go
będzie utrzymywał, w jaki sposób będzie utrzymywany to może być nie nasz problem.
Pierwszym zjawiskiem, na który chciałbym zwrócić uwagę jest ignorancja.
Mówi się, że ignorancja jest gorsza od głupoty, bo jest świadoma.
Głupota nie jest świadoma.
I taka ignorancja polegająca na świadomym odrzuceniu zasad,
dobrych zasad w programowaniu może mieć bardzo doniosłe konsekwencje.
Z czego wynika taka ignorancja?
W pierwszej kolejności mamy teraz ERI dużo nowych technologii.
Nowe frameworki powstają cały czas, są cały czas usprawnione.
Mamy coraz lepsze narzędzia jako programiści.
I pojawia się pewna niechęć i dystans do
tych wszystkich zasad i teorii, które były kiedyś tam.
Więc naturalnie odrzucamy coś, co może wydawać się nam archaiczne
lub przedawnione.
I tak oto rodzi się dystans do zasad SOLID.
Z drugiej strony pojawiają się głosy, że zasady Solid to czysta teoria,
która nie ma przełożenia na praktykę.
Ale pocieszę Cię, że mówią tak tylko ci, którzy tych zasad nigdy nie stosowali i
nigdy nie doświadczyli tego, jak wiele benefitów można zyskać, jak wiele
dobrego kodu łatwego w utrzymaniu.
Można napisać, jak wiele bugów można uniknąć stosując właśnie zasady SOLID.
Inni mówią, że zasady SOLID to dodatkowy narzut, którym musimy się przejmować
jako programista i programiści.
Nie dość, że musimy być na bieżąco z nowymi technologiami, nie dość, że
musimy śledzić zmiany we frameworku.
Nie dość, że świat pędzi i technologie się rozwijają.
Zwłaszcza zwłaszcza teraz, w dobie sztucznej inteligencji,
nie dość, że musimy się skupiać nad złożonymi domenami biznesowymi aplikacji,
w których pracujemy, to jeszcze musimy gdzieś z tyłu głowy mieć
jakieś tam zasady wymyślone dawno temu, wobec czego zasady SOLID są ignorowane ze
względu na to, że traktujemy je jako coś dodatkowego, coś niepotrzebnego, coś na co
musimy rezerwować nasze zasoby umysłowe.
Z innej strony pojawia się pewien mit spowalniania wytwarzania oprogramowania.
Usłyszysz takie głosy w różnych środowiskach, gdzie wszelkie zasady,
wszelkie praktyki, wzorce architektoniczne, wzorce projektowe będą
kwestionowane właśnie tym argumentem, że spowalnia to wytwarzanie
oprogramowania i ok.
W jakimś sensie ten argument jest prawdziwy, bo wolniej programujemy
stosując zasady, bo musimy się skupiać na dobrą strukturą.
Nie możemy pisać kodu, jak wypluwają go nasze myśli na klawiaturę.
Natomiast później, kiedy ten system trzeba będzie utrzymywać, trzeba będzie go
rozwijać, modyfikować albo poprawiać bugi.
Wtedy okaże się, że takie spontaniczne tworzenie, spontaniczne pisanie kodu bez
ładu i składu, bez dobrych praktyk i wzorców wcale nie spowolni
oprogramowania i wcale nie przyspieszy powstawania naszego projektu, bo stracimy
dużo więcej czasu na poprawkach, przepisywaniu faktoringu i usprawnieniu,
bo zrezygnujemy w jakimś momencie właśnie z dobrych praktyk płynących z zasad SOLID.
Wreszcie często mówi się, że zasady SOLID to tylko takie pytanie na rozmowach
rekrutacyjnych, które służy temu, żeby zagiąć kandydatów.
I czasami tak jest, bo nie jest fair, kiedy firma na rozmowie rekrutacyjnej
maluje kandydata czy kandydatkę.
Z tych pięciu zasad SOLID bardzo szczegółowo, a potem okazuje się, że nie
ma to żadnego przełożenia w kodzie aplikacji, wobec czego społeczność będzie
po prostu ignorować te zasady i nie będzie chęci w wykorzystywaniu ich w projektach.