W dniu dzisiejszym mamy dla Was Reaktywnego Hibernate, rewelacyjny przegląd Javowych cache, a także kilka pomniejszych (ale interesujących) releasów. Zapraszamy do lektury!
1. Reaktywny Hibernate wydany 😴
Hibernate to jedna z tych technologii o których nie mówi się za wiele… chyba, że w kontekście pytań rekrutacyjnych o poziomach cache. Wciąż pojawia się w masie projektów, ale mam wrażenie, że od pewnego czasu nie jest już takim oczywistym wyborem jak kiedyś. ORMy są wygodne, ale przez lata zyskały trochę złej prasy (Object–relational impedance mismatch, anyone?). Jeżeli ktoś używa Springa – to nawet jeśli w bebechach projektu znajduje się Hibernate, to bardzo często bywa przykryty przez abstrakcję Spring Data. Jeżeli ktoś chce pozostawać bliżej bazy danych, pewnie pomyśli o jOOQu (chyba że używa Oracle, a nie chce płacić). Tutaj ogólnie mam wrażenie, że ze względu na to, że regularnie jako programiści używamy różnych baz danych, nie tylko SQL, nauczyliśmy się unikać dodatkowych abstrakcji. Dodatkowo, coraz częściej używamy w javowym świecie reaktywnych technologii, z którymi Hibernate kiepsko się zgrywał – i być może tutaj też warto szukać przyczyny.
Czasami pojawiają się jednak dobre powody, żeby o Hibernate wspomnieć. Otóż w zeszłym tygodniu, premierę miała jego “duża” nowa edycja – przeznaczona właśnie do aplikacji reaktywnych. Hibernate Reactive 1.0.0, bo o niej tutaj mowa, można używać z PostgreSQL, MySQL, MariaDB, Db2, SQL Server, i CockroachDB i wspiera niemal wszystkie funkcjonalności oryginalnego Hibernate ORM. Pod spodem zaś, Hibernate Reactive używa nie blokującego SQLowego klienta dostarczanego przez Vert.x.
Hibernate nie jest oczywiście pierwszym “reaktywnym” rozwiązaniem dla bazy danych na JVMie – ich przegląd wymagałby jednak osobnego opracowania (które być może kiedyś stworzę?). To, co jego twórcy zrobili jednak bardzo dobrze, to opracowali przystępny przewodnik z masą statystyk, mający pokazać sytuacje, kiedy tak naprawdę reaktywnego Hibernate warto używać, a kiedy raczej pasuje dać sobie siana. Rzeczona reaktywność to w końcu nie jest jakiś magiczny sos, którym polewamy aplikację, aby ta działała szybciej – w związku z czym sprawdza się raczej w wyłącznie w wybranych sytuacjach. Zawsze szanuję taką transparencję, dlatego Hibernate zyskał ode mnie za to dodatkowe punkty.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Jak wybrać cache do javowego projektu? 🤔
Jeżeli chodzi o obsługę warstwy persystencji, baza danych to tylko jedna strona medalu. W dzisiejszych czasach w zasadzie każda aplikacja wymaga jakiejś formy cache. Oczywiście, to jest szalenie skomplikowany temat, ale jeśli zastanawialiście się, jakie opcje mamy w wypadku takowej – mam dla Was fantastyczną checklistę.
Nie raz powołujemy się w naszych wtorkach na publikacje Nicolasa Fränkela, gdyż bierze się on zwykle za ciekawe, nietuzinkowe tematy. Tym razem na warsztat wziął właśnie temat javowego cache. O ile pierwsza część artykułu zaciekawi raczej początkujących, gdyż jest to bardzo bazowe przejście przez zagadnienia związane z teorią cache, o tyle druga będzie ciekawa już w zasadzie dla każdego. Stanowi bowiem listę dostawców i bibliotek scharakteryzowanych następującymi kategoriami jak lokalność/rozproszoność, nieblokowalność, obsługa JCache i Spring Cache oraz dostępnymi sposobami obsługi “świeżości danych”. Opracowanie natychmiast trafiło do mojej prywatnej kolekcji tekstów W razie WU, a również Wam polecam sobie je gdzieś przechować. Będzie nieocenione, jeśli będziecie musieli zdecydować się na jakieś konkretne rozwiązanie w projekcie i będziecie chcieli podjąć wyedukowaną decyzję.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Release Radar 📡
Grails 5
Premiera Grails przeszła trochę pod naszym radarem, ale musicie nam to wybaczyć – ja naprawdę nie spodziewałem się, że to jeszcze oddycha – aczkolwiek bardzo podobnie mam z wszystkimi projektami opartymi o Groovy. Nowa wersja Grailsów to właśnie wsparcie dla nowej wersji języka więc sporo rzeczy dzieje się pod maską. Całe wydanie robi też upgrade do najnowszej dostępnej wersji Springa. Jeżeli chodzi o zmiany funkcjonalne, największa ilość z nich dotyczy mocnego przeorania pluginów Gradlowych.
Jeżeli jesteście zainteresowani Grailsami (którymi nie są zainteresowani już nawet oryginalni twórcy, grzebiący aktualnie mocno w Micronaucie) – więcej detali znajdziecie tutaj.
Java on Visual Studio Code
Ważne nowości przynosi też w swoim wrześniowym (wydanym 29 października 🤷♂️) update wsparcie Javy w Visual Studio Code (używacie?). Przede wszystkim, ukazała się stabilna wersja “backendu” całości, czyli utrzymywanego przez Red Hata parsera javowego kodu, który od teraz wspiera min. nowy syntax Javy aż do wersji 17. Oprócz tego, sporo zmian zaszło we wsparciu Gradle.
Quarkus 2.4
Nowy Quarkus przynosi min. wsparcie dla głównej gwiazdy naszego wydania – Hibernate Reactive 1.0.0. To jednak nie wszystko. Oprócz tego w nowym wydaniu znajdziecie także wsparcie dla ciągłego testowania w multi modułowych projektach, ale również nowy wizualizer dla Kafka Streams.
A teraz zapraszamy na reklamy:
Jesteśmy podekscytowani mogąc Was wreszcie poinformować o naszym nowym projekcie 🤩.
Wraz z Earborne Media stworzyliśmy bowiem Podcast Root Cause by Vived, którego odcinki w każdy piątek znajdziecie w dobrych aplikacjach Podcastowych.
A poniżej – pierwszy odcinek:
Dyskusja o pieniądzach w świecie IT wydaje się nie mieć końca. Skąd to się właściwie bierze? Czy można zarabiać za dużo? O co chodzi z czynnikiem higienicznym? I czy problem z różnicami wynagrodzeń programistów to tylko polskie zjawisko? Między innymi o tym opowiedzą w tym odcinku Piotr Janczyk, Łukasz Małocha i Artur Skowroński.