KJUG #89 Dwie prezentacje: "MapStruct..." oraz "Thread Pool i czas czekania..."
Szczegóły
KJUGowicze - #89 meetup już niebawem! Spotykamy się jak zawsze w czwartek w Pubie Garaż. Tym razem na scenie wystąpi Wojtek Korban oraz Mateusz Nalepa!
🎙️ MapStruct – bo ręczne mapowanie to zbrodnia przeciwko ludzkości
MapStruct to biblioteka dla języka Java, która automatycznie generuje kod do mapowania obiektów (np. między DTO a Entity) w czasie kompilacji.
Główne założenia:
• upraszcza konwersję między różnymi modelami danych,
• generuje wydajny kod w czasie kompilacji (bez refleksji),
• działa jako annotation processor.
Jak działa:
1. Programista definiuje interfejs mappera z adnotacją @Mapper.
2. MapStruct podczas kompilacji generuje implementację mappera.
3. Aplikacja używa wygenerowanego kodu do konwersji obiektów.
Najważniejsze zalety:
• mniej ręcznego kodu,
• wysoka wydajność,
• czytelne mapowanie dzięki adnotacjom,
• dobra integracja z Spring Framework.
Typowe zastosowanie:
• mapowanie Entity ↔ DTO w aplikacjach backendowych,
• oddzielenie warstwy bazy danych od warstwy API.
Bio:
Wojciech Korban – doświadczony programista Fullstack z ponad 10-letnim doświadczeniem w tworzeniu systemów opartych o Java i Angular. Specjalizuje się w budowaniu skalowalnych aplikacji z dużym naciskiem na jakość kodu, bezpieczeństwo oraz podejście TDD. W swojej pracy koncentruje się na tworzeniu stabilnych, dobrze przetestowanych rozwiązań oraz utrzymaniu wysokich standardów inżynierskich.
Poza programowaniem interesuje się rynkiem nieruchomości, motoryzacją oraz technologią dronów.
-----------------------------------------------------------------------------------
🎙️ Thread Pool i czas czekania w kolejce: Bottleneck, którego nawet AI nie znalazł
Wiele różnych systemów zachowuje się zaskakująco podobnie: działają na wątkach lub pulach wątków, wysyłają żądania HTTP w trybie blokującym lub nieblokującym oraz parsują JSONy żeby móc wykonywać logikę biznesową. Jednak prędzej czy później zaczynają zwalniać – niczym jazda przez miasto w godzinach szczytu, gdy każda ulica kryje kolejny korek. W tym wystąpieniu przyjrzymy się, gdzie pojawia się czas oczekiwania w kolejce w naszych Thread Poolach i jak go mierzyć. Oczywiście dowiemy się też co robić, gdy czas czekania jest większy niż 0. Wszystkie wnioski pochodzą bezpośrednio z rzeczywistych danych produkcyjnych.
Bio:
Mateusz jest inżynierem oprogramowania z dziewięcioletnim doświadczenie komercyjnym. Jego praca koncentruje się na budowaniu wydajnych, dobrze zaprojektowanych systemów, ze szczególnym uwzględnieniem podstawowych zasad inżynierii oprogramowania, które wpływają na wydajność i skalowalność. Uważa, że "Paint" oraz "to zależy" są absolutnie najlepszymi narzędziami które pomagają wyjaśniać zawiłe koncepty z programowania. Jego ulubiony prompt do AI to: "Hej, wytłumacz mi XYZ jak dla 6 letniego dziecka" który pomaga bardzo szybko znaleźć punkt odniesienia. W ramach pracy chętnie dzieli się wiedzą i zawsze jest chętny do tego, żeby wdrożyć nową osobę do zespołu. W wolnej chwili występuje w teatrze i gra na pianinie.
