Cześć!
Jak pewnie wiecie, aktywnym programistą Javy nie jestem już od jakiegoś czasu. Nie oznacza to że korzystam z niej czy czasem nie napiszę w niej czegoś, nie mniej jednak od 4 lat moim językiem wiodącym jest Python.
Nie zmienia to faktu że te kilka lat temu miałem przyjemność pracować we, wspomnianym w tytule, Springu – i dziś, trochę z perspektywy czasu, kilka wspomnień i przemyśleń.
Nim przejdziemy sobie do własnych wniosków, dobrze by było najpierw wyjaśnić czym jest framework i czym różni się on od biblioteki bo okazało się ostatnio, że sporo osób o tym nie wie.
Biblioteka jest wtedy kiedy to My wywołujemy jawnie jej kod. Framework jest wtedy kiedy to framework wywołuje nasz kod. Różnica którą przedstawiłem to tzn Inversion of Control – czyli odwrócone sterowanie. Przykładowo biblioteką będzie kod:
1 2 3 4 | from library import Library library_object = Library() library_object.process(args) |
a frameworkiem:
1 2 3 4 5 6 | from framework import events def event_hook(event) event.log.debug("Event %r !", event) events.core.bind(events.STRANGE_EVENT, event_hook) |
w pierwszym przykładzie jawnie wywołujemy kod biblioteki a w drugim “włączamy” nasz kod w ekosystem frameworka, co pozwala mu na użycie go, ale to od niego zależy kiedy to sie stanie.
Projekt ten jest już dość starym projektem, bo jego początki sięgają 2002 roku, kiedy to światło dzienne ujrzało jego pierwsze wydanie. W momencie pisania tego artykułu stabilną wersją jest wersja 5.1.6!
Architektura projektu jest modułowa i wygląda tak:
Moduł zawierający JDBC to moduł powalający na dostęp do danych i/lub ogólnie rozumianą integrację vis JMS (Java Message Service). Web to pakiet pozwalający na obsługę protokołów HTTP jak i protokołów w około niego.
To o czym warto wspomnieć, pisząc ten lekki artykuł to element Beans – bo to podstawa koncepcji całego frameworka. Jest on związany dość mocno z wstrzykiwaniem zależności i odwróconym sterowaniem (ang. Dependeny Injections, Inversion of Control) i definiuje się tym słowem obiekty które poddajemy procesom wstrzykiwania zależności. Prawie cała konfiguracja projektu opartego o Springa jest zasypana słowem „bean”.
Ze Springiem zetknąłem się na studiach i był to twór którego uruchomienie graniczyło z cudem. Dużo dziwnych błędów, nic nie chciało działać, każdy miał inne te błędy i ogólnie było z tym mnóstwo problemów. Krew, pot i łzy.
Dopiero w pracy udało mi się ogarnąć skąd te błędy i problemy powstawały i dopiero wtedy ten cały Spring zaczynał mieć jakiś większy sens.
Sama praca z nim, wynikająca oczywiście trochę z architektury którą narzucał, była już bardzo przyjemna. Kiedyś nawet tu napisałem wpis na temat programowania aspektowego w Spring 4. Fajny temat. Ciekawy.
atrząc wstecz mogę stwierdzić, że, mimo ciężkich początków, Spring jest ogromnie fajnym i kompleksowym rozwiązaniem. Sam nie jestem ekspertem od Springa, żeby pisać tu coś więcej poza subiektywnym odczuciem, ale ostatnio, przy okazji współpracy z Przemkiem Bykowskim, zobaczyłem, że gość potrafi robić ze Springiem cuda! Dodatkowo widać, że robi to z pasją i zaangażowaniem, bo jego blog i kanał YouTube wręcz emanuje pozytywną energią. Dlatego odsyłam Cię do gościa, który w tym temacie poprowadzi Cię najlepiej. Poza tym Przemek właśnie uruchomił kompleksowy materiał, który ułatwia, świetnie przedstawia i pozwala uczyć się Springa skutecznie i efektywnie – tutaj zostawiam link.
Cześć. Dziś luźny artykuł, bo dziś pobawimy się jedną z pierwszy wersji Pythona. Skompilujemy go i zobaczymy co tam w… Read More
Nowy rok czas zacząć! Więc lećmy z podsumowaniem. Nowy artykuł Nie uwierzycie, ale pojawił się na blogu nowy artykuł! Piszę… Read More
Cześć! W Pythonie 3.13 dodano JITa! JIT, czyli just-in-time compiler to optymalizacja na która Python naprawdę długo czekał. Na nasze… Read More
Cześć! Zapraszam na podsumowanie roku 2024. Książki W sumie rok 2024 był pod względem ilości książek nieco podobny do roku… Read More
Podtrzymując tradycję, prawie regularnych podsumowań, zapraszam na wpis! Nie mogło obyć się bez Karkonoszy We wrześniu odwiedziłem z kolegą Karkonosze,… Read More
Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More