Java Persistence API - zagadnienia zaawansowane

Podobne dokumenty
Wzorce projektowe i architektura dla platformy Java EE

Implementacja Domain Driven Design - wzorce architektoniczne (część

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Szkolenie wycofane z oferty

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Receptury - niezbędnik projektanta i architekta

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Podstawy frameworka Spring

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

EJB 3.0 (Enterprise JavaBeans 3.0)

Techniki efektywnego testowania kodu dla programistów Java (Spock

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Program szkolenia: Symfony, nowoczesny framework PHP

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Scala - programowanie obiektowo-funkcyjne

Program szkolenia: Wzorce projektowe w C++

Programowanie obiektowe

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Program szkolenia: Continuous Integration i Git

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Szkolenie wycofane z oferty. Apache Cassandra - modelowanie, wydajność, analiza danych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Program szkolenia: REST i Microservices w PHP

DDD : dla architektów oprogramowania / Vaughn Vernon. Gliwice, cop Spis treści

Nowoczesne aplikacje internetowe oparte na Spring Framework, JSF, JPA i AJAX

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Pod dwóch wprowadzających w koncepcję DDD częściach,

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

TECHNOLOGIA EJB I JPA KOD: EJBJPA

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2014

SZKOLENIE TWORZENIE SYSTEMÓW

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Projektowanie aplikacji z bazami danych

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Program szkolenia: Zaawansowane programowanie w C++

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Aplikacje Internetowe, Servlety, JSP i JDBC

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Program szkolenia: Wzorce projektowe i architektoniczne oraz efektywne techniki Object Oriented Design dla projektantów systemów

Wzorce projektowe. dr inż. Marcin Pietroo

Program szkolenia: JavaScript Craftsmanship

Nowoczesne aplikacje internetowe oparte na Seam, JSF, EJB3, JPA, AJAX

Modelowanie procesów biznesowych, przepływu pracy i wdrażanie aplikacji w oparciu o Jboss jbpm lub Activiti

Wykład 1 Inżynieria Oprogramowania

IT Camp Junior Java Developer. Cel kursu

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Domain Driven Design - projektowanie modeli złożonych domen (część

Hibernate. Adrian Gawor, Adam Klekotka, Piotr Kubisz. Technologie Biznesu Elektronicznego. 12 maja 2009

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

WPROWADZENIE DO BAZ DANYCH

Programowanie w języku Java WYKŁAD

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Kurs programowania aplikacji bazodanowych

Ewolucyjna architektura

Enterprise Java Beans wykład 7 i 8

JPA Java Persistance API

Podstawy modelowania programów Kod przedmiotu

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

Historia modeli programowania

EJB 3.0 & JBoss Seam. 25 kwietnia 2007 Jacek Gerbszt 1

Domain Driven Design krok po kroku

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2017

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Analiza porównawcza technologii odwzorowania obiektowo-relacyjnego dla aplikacji Java

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Nowoczesne aplikacje internetowe oparte na JEE6 (JSF2, EJB3.1, JPA2, CDI, AJAX)

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Technologie wyszukiwania pełnotekstowego

Transkrypt:

Program szkolenia: Java Persistence API - zagadnienia zaawansowane Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Java Persistence API - zagadnienia zaawansowane Java-EE-jpa-pro Java EE developerzy 2 dni 50% wykłady / 50% warsztaty Wydajność jest częstym problemem systemów opartych o ORM dlatego program szkolenia dobrano pod kątem optymalizacji wykorzystania JPA. Szkolenie przedstawia typowe błędy programistyczne wpływające na drastyczny spadek wydajności, sposoby ich wykrywania oraz zapobiegania. Materiał uzupełniono o specyficzne zagadnienia Hibernate, takie jak cache orz strategie mapowania encji. Materiały wstępne Przed szkoleniem możesz zapoznać się z próbką naszych materiałów: Mapowanie relacyjno-obiektowe prawdziwych obiektów. Prezentacja: Mapowanie relacyjno-obiektowe prawdziwych obiektów Zalety 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ń Strona: 1/7

Szczegółowy program: 1. Modelowanie encji z wykorzystaniem technik Obiektowych 1.1. Elementy Domain Driven Design 1.2. Mapowanie powiązań, sterowania kierunkiem właściciela 1.3. Mapowania dziedziczenia - klasy bazowe dla Agregatów 1.4. Wprowadzania do modelu ValueObjects zapewniających immutability i zwiększających siłę wyrazu modelu (adnotacja Embeded) 1.5. Enkapsulaja modelu 1.6. Określanie wyraźnej granicy grafu obiektu - określanie jednostki zmiany 2. Architektura dostępu do danych w aplikacjach warstwowych 2.1. Abstrakcja źródeł danych 2.2. Wzorce DAO i Repository 2.3. Wpływ na testability 2.4. Wpływ na przenośność i skalowalność systemu 2.5. Base DAO/Repository 2.5.1. Wspólne operacje na encjach 2.6. Umieszczenie dostępu do danych w architekturze aplikacji 2.7. Projekt architektury pod kątem testowalności 2.8. Architektura CqRS 3. Modelowanie encji 3.1. Wykorzystanie typów zagnieżdżonych do mapowania Value Objects 3.2. Modelowanie niezmienników 3.3. Dobór struktur danych w powiązaniu One-to-Many 3.3.1. Set 3.3.2. Bag Strona: 2/7

3.3.3. List 3.3.4. Uniaknie zbędnych operacji odtwarzania i pobierania kolekcji 3.4. Mapowanie kolekcji 3.4.1. Tabele linkujące w powiązaniu One-to-Many 3.4.1.1. Kiedy stosować - kompozycja a agregacja 3.4.2. Strategie pobieranie w kontekście modelu biznesowego 3.5. Optymalizacja operacji 3.5.1. Pobieranie Proxy 3.5.2. Dynamiczny Update 3.6. Operacje kaskadowe a granica Agregatu 3.7. Problem identyfikacje encji - dobór podejścia 3.7.1. klucze główne 3.7.2. klucze naturalne 3.7.3. UUID 3.7.4. referencja w pamięci 3.8. Dziedziczenie 3.8.1. Kiedy dziedziczenie nie ma sensu w modelu biznesowym 3.8.2. Implementacje dziedziczenia - wady i zalety każdego z podejść 3.8.3. Pojedyncza tabela 3.8.4. Tabela per klasa 3.8.5. Tabele dla super klas 3.8.6. Alternatywa dla dziedziczenia 3.8.6.1. Party Archetype 3.8.6.2. Role Object Pattern 4. Zdarzenia i callbacks Strona: 3/7

4.1. Dobór techniki do problemu 4.2. Typowe zastosowania 5. Wydajność dostępu do danych 5.1. Pułapki wydajności JPA 5.1.1. n+1 Select problem - wykrywanie i zapobieganie 5.1.2. Wykrywanie N+1SP 5.1.2.1. Wykrywanie automatyczne przy pomocy AOP 5.1.3. Sposoby naprawy N+1SP 5.1.3.1. JOIN FETCH 5.1.3.2. Batch size 5.2. Pułapki Lazy Loadingu oraz zbyt chciwego pobierania danych 5.2.1. Nadmierne pobieranie danych 5.2.2. Racjonalne wykorzystanie Lazy Loadingu 5.3. Optymalne mapowanie encji 5.3.1. Nadmiarowość pobierania danych 5.3.2. Problemy z leniwym ładowaniem pól 5.4. Pobieranie konkretnych atrybutów 6. Operacje typu batch 6.1. Pułapki 6.1.1. L1 Cache 6.1.2. L2 Cache 6.1.3. Wersjonowanie 7. JPA czy native SQL dobór odpowiedniego narzędzia do konkretnego problemu 7.1. Podejście pragmatyczne: refaktoryzacja z JPA na SQL przy pomocy DAO i wstrzykiwania zależności Strona: 4/7

7.2. Dostęp do danych w kontekście architektury Command-query Responsibility Segregation 7.2.1. Dedykowany model do odczytu - pobieranie danych odpowiednich do prezentacji 7.2.2. Uaktualnianie modelu do odczytu 7.3. Wykorzystanie mybatis 8. Hibernate cache niezastąpione rozwiązanie. 8.1. Idea działania i konfiguracja 8.2. Cache pierwszego poziomu 8.2.1. Wygaszania w przypadku operowania na dużych ilościach danych 8.3. Cache drugiego poziomu 8.3.1. Najlepsze praktyki 8.4. Cache zapytań - pułapki 8.4.1. Kiedy nie stosować 8.5. Mapowanie encji zorientowanie na cacheowanie 9. Entity Manager - tryb rozszerzony 9.1. Naturalna granica jednostki pracy 9.2. Transakcje aplikacyjne 9.3. Model konwersacji 9.4. Manualne opróżnianie kontekstu 10. Testowanie 10.1. Racjonalizacja architektury w kontekście piramidy testów 10.2. Testowanie operacji na JPA 10.3. Unikanie mockowania źródeł danych w testach jednostkowych 10.4. Preferowanie testów end-to-end gdy pobieramy dane 10.5. Zwiększanie pokrycia poprzez testy jednostkowe Strona: 5/7

11. Transakcje w Java EE 11.1. Anomalie przy współbieżnym dostępie do danych 11.2. Poziomy separacji w celu unikania anomalii 11.3. Deklaratywne (zarządzane przez kontener) 11.4. Koncepcja transakcji sterowanych wyjątkami 11.5. Zarządzane przez Bean 11.6. Zarządzane przez klienta praktyczne wykorzystanie w przypadku łączenia z operacjami nie tylko bazodanowymi 11.7. Zagadnienie propagacji transakcji - Praktyczne przykłady na każdy z typów 11.8. Transakcje rozproszone w środowisku JEE 11.8.1. Konfiguracja 11.8.2. Zasada działania double commit 11.9. Wydajność transakcji 12. Blokowanie 12.1. Optymistyczne - dobór podejścia do scenariusza 12.1.1. Wersjonowanie 12.1.2. Read 12.1.3. Write - ochrona agregatów (grafów encji) 12.2. Pesymistyczne 12.3. Pułapki i najlepsze praktyki 13. Systemu klasy multi-tenant 13.1. Podejścia do modelu danych 13.1.1. Wspólne dane 13.1.2. Dedykowane tabele 13.1.3. Dedykowane Schemy 13.2. Podejścia do logiki - przegląd Strona: 6/7

Strona: 7/7