| Tytuł: | Java Persistence API - zagadnienia zaawansowane |
| Kod: | jpa-pro |
| Kategoria: | Zaawansowana Java |
| Forma: | 50% wykłady / 50% warsztaty |
| Czas trwania: | 2 dni |
| Odbiorcy: | developerzy |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Wydajność jest częstym problemem systemów opartych o ORM dlatego program szkolenia dobrano pod kątem optymalizacji wykorzystania JPA..
Wyróżniki szkolenia
- Zwracamy szczególną uwagę na wydajność
- Prezentujemy typowe jak i mniej typowe pułapki
- Wskazujemy rozwiązania każdego z omawianych problemów
- warsztaty w formie pracy nad projektem wymagającym usprawnień
Program Szkolenia
Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.-
Modelowanie encji z wykorzystaniem technik Obiektowych- Elementy Domain Driven Design
- Mapowanie powiązań, sterowania kierunkiem właściciela
- Mapowania dziedziczenia - klasy bazowe dla Agregatów
- Wprowadzania do modelu ValueObjects zapewniających immutability i zwiększających siłę wyrazu modelu (adnotacja Embeded)
- Enkapsulaja modelu
- Określanie wyraźnej granicy grafu obiektu - określanie jednostki zmiany
- Elementy Domain Driven Design
-
Architektura dostępu do danych w aplikacjach warstwowych- Abstrakcja źródeł danych
- Wzorce DAO i Repository
- Wpływ na testability
- Wpływ na przenośność i skalowalność systemu
- Base DAO/Repository
- Wspólne operacje na encjach
- Wspólne operacje na encjach
- Umieszczenie dostępu do danych w architekturze aplikacji
- Projekt architektury pod kątem testowalności
- Architektura CqRS
- Abstrakcja źródeł danych
-
Zaawansowanie mapowania- Wykorzystanie typów zagnieżdżonych do mapowania Value Objects
- Modelowanie niezmienników
- Dobór struktur danych w powiązaniu One-to-Many
- Set
- Bag
- List
- Uniaknie zbędnych operacji odtwarzania i pobierania kolekcji
- Set
- Mapowanie kolekcji
- Tabele linkujące w powiązaniu One-to-Many
- Kiedy stosować - kompozycja a agregacja
- Kiedy stosować - kompozycja a agregacja
- Strategie pobieranie w kontekście modelu biznesowego
- Tabele linkujące w powiązaniu One-to-Many
- Optymalizacja operacji
- Pobieranie Proxy
- Dynamiczny Update
- Pobieranie Proxy
- Operacje kaskadowe a granica Agregatu
- Problem identyfikacje encji - dobór podejścia
- klucze główne
- klucze naturalne
- UUID
- referencja w pamięci
- klucze główne
- Dziedziczenie
- Kiedy dziedziczenie nie ma sensu w modelu biznesowym
- Implementacje dziedziczenia - wady i zalety każdego z podejść
- Pojedyncza tabela
- Tabela per klasa
- Tabele dla super klas
- Alternatywa dla dziedziczenia
- Party Archetype
- Role Object Pattern
- Party Archetype
- Kiedy dziedziczenie nie ma sensu w modelu biznesowym
- Wykorzystanie typów zagnieżdżonych do mapowania Value Objects
-
Zdarzenia i callbacks- Dobór techniki do problemu
- Typowe zastosowania
- Dobór techniki do problemu
-
Wydajność dostępu do danych- Pułapki wydajności JPA
- „n+1 Select problem” - wykrywanie i zapobieganie
- Wykrywanie N+1SP
- Wykrywanie automatyczne przy pomocy AOP
- Wykrywanie automatyczne przy pomocy AOP
- Sposoby naprawy N+1SP
- JOIN FETCH
- Batch size
- JOIN FETCH
- „n+1 Select problem” - wykrywanie i zapobieganie
- Pułapki Lazy Loadingu oraz zbyt chciwego pobierania danych
- Nadmierne pobieranie danych
- Racjonalne wykorzystanie Lazy Loadingu
- Nadmierne pobieranie danych
- Optymalne mapowanie encji
- Nadmiarowość pobierania danych
- Problemy z leniwym ładowaniem pól
- Nadmiarowość pobierania danych
- Pobieranie konkretnych atrybutów
- Pułapki wydajności JPA
-
Operacje typu batch- Pułapki
- L1 Cache
- L2 Cache
- Wersjonowanie
- L1 Cache
- Pułapki
-
JPA czy native SQL – dobór odpowiedniego narzędzia do konkretnego problemu- Podejście pragmatyczne: refaktoryzacja z JPA na SQL przy pomocy DAO i wstrzykiwania zależności
- Dostęp do danych w kontekście architektury Command-query Responsibility Segregation
- Dedykowany model do odczytu - pobieranie danych odpowiednich do prezentacji
- Uaktualnianie modelu do odczytu
- Dedykowany model do odczytu - pobieranie danych odpowiednich do prezentacji
- Wykorzystanie myBatis
- Podejście pragmatyczne: refaktoryzacja z JPA na SQL przy pomocy DAO i wstrzykiwania zależności
-
Hibernate cache – niezastąpione rozwiązanie.- Idea działania i konfiguracja
- Cache pierwszego poziomu
- Wygaszania w przypadku operowania na dużych ilościach danych
- Wygaszania w przypadku operowania na dużych ilościach danych
- Cache drugiego poziomu
- Najlepsze praktyki
- Najlepsze praktyki
- Cache zapytań - pułapki
- Kiedy nie stosować
- Kiedy nie stosować
- Mapowanie encji zorientowanie na cacheowanie
- Idea działania i konfiguracja
-
Entity Manager - tryb rozszerzony- Naturalna granica jednostki pracy
- Transakcje aplikacyjne
- Model konwersacji
- Manualne opróżnianie kontekstu
- Naturalna granica jednostki pracy
-
Testowanie- Racjonalizacja architektury w kontekście piramidy testów
- Testowanie operacji na JPA
- Unikanie mockowania źródeł danych w testach jednostkowych
- Preferowanie testów end-to-end gdy pobieramy dane
- Zwiększanie pokrycia poprzez testy jednostkowe
- Racjonalizacja architektury w kontekście piramidy testów
-
Transakcje w Java EE- Anomalie przy współbieżnym dostępie do danych
- Poziomy separacji w celu unikania anomalii
- Deklaratywne (zarządzane przez kontener)
- Koncepcja transakcji sterowanych wyjątkami
- Zarządzane przez Bean
- Zarządzane przez klienta – praktyczne wykorzystanie w przypadku łączenia z operacjami nie tylko bazodanowymi
- Zagadnienie propagacji transakcji - Praktyczne przykłady na każdy z typów
- Transakcje rozproszone w środowisku JEE
- Konfiguracja
- Zasada działania „double commit”
- Konfiguracja
- Wydajność transakcji
- Anomalie przy współbieżnym dostępie do danych
-
Blokowanie- Optymistyczne - dobór podejścia do scenariusza
- Wersjonowanie
- Read
- Write - ochrona agregatów (grafów encji)
- Wersjonowanie
- Pesymistyczne
- Pułapki i najlepsze praktyki
- Optymistyczne - dobór podejścia do scenariusza
-
Systemu klasy multi-tenant- Podejścia do modelu danych
- Wspólne dane
- Dedykowane tabele
- Dedykowane Schemy
- Wspólne dane
- Podejścia do logiki - przegląd
- Podejścia do modelu danych
Pobierz program w formacie PDF
Trenerzy
Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.