Wzorce projektowe i architektura dla platformy Java EE

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

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

Java Persistence API - zagadnienia zaawansowane

Receptury - niezbędnik projektanta i architekta

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

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

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

Spring Framework - wprowadzenie i zagadnienia zaawansowane

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

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

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

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

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

Program szkolenia: Wzorce projektowe w C++

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

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

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

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

Szkolenie wycofane z oferty

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

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

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

Podstawy frameworka Spring

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

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

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

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

Techniki efektywnego testowania kodu dla programistów Java (Spock

EJB 3.0 (Enterprise JavaBeans 3.0)

Zaawansowane programowanie w języku C++

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

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

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Program szkolenia: Continuous Integration i Git

Domain Driven Design krok po kroku

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

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

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

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

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Web frameworks do budowy aplikacji zgodnych z J2EE

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

ZAŁĄCZNIK Nr 2 do CZĘŚCI II SIWZ WYCIĄG ZE STANDARDÓW, ZASAD I WZORCÓW INTEGRACYJNYCH OBOWIĄZUJĄCYCH W PSE S.A.

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

SZKOLENIE TWORZENIE SYSTEMÓW

INŻYNIERIA OPROGRAMOWANIA

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

Spis treúci. 1. Wprowadzenie... 13

Programowanie Zespołowe

Wykład 1 Inżynieria Oprogramowania

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

Korporacyjna Magistrala Usług na przykładzie Mule ESB

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

Scala - programowanie obiektowo-funkcyjne

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Programowanie obiektowe

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

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

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

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

Programowanie obiektowe

Inżynieria Oprogramowania w Praktyce

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Podstawy programowania III WYKŁAD 4

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium

INŻYNIERIA OPROGRAMOWANIA

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Program szkolenia: REST i Microservices w PHP

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Enterprise Integration Patterns z wykorzystaniem Apache Camel

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Program szkolenia: Symfony, nowoczesny framework PHP

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Paweł Rajba

Podstawy modelowania programów Kod przedmiotu

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Informatyzacja przedsiębiorstw

Program szkolenia: JavaScript Craftsmanship

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

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

Receptury projektowe niezbędnik początkującego architekta

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

Program szkolenia: Jenkins - Continuous Integration

Programowanie komponentowe 5

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

Transkrypt:

Program szkolenia: Wzorce projektowe i architektura dla platformy Java EE Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Wzorce projektowe i architektura dla platformy Java EE java-arch-arch Architektura Java architekci 3 dni 50% wykłady / 50% warsztaty Szkolenie prezentuje wybrane Wzorce Projektowe i Architektoncizne w praktycznym i niepodręcznikowym ujęciu osadzonym w kontekście projektowania systemów na platformie Java EE. Podczas szkolenia prezentowane są przykłady praktycznego zastosowania zaczerpnięte z rzeczywistych systemów klas: ERP, narzędzia wizualne, systemy rozproszone, serwery. Podczas szkolenia uczestnicy nabędą zintegrowaną wiedzę na temat zdobyczy nowoczesnej inżynierii oprogramowania pozwalającą im na tworzenie zaawansowanych systemów. Przedstawiamy techniki łączenie wzorców w struktury wyższego rzędu. Zalety szkolenia: Nowoczesne architektury (CqRS - wspierająca DDD) Szersza perspektywa Dobór klasy rozwiązania do klasy problemu Strona: 1/8

Szczegółowy program: 1. Architektura systemu 1.1. Modularyzacja 1.1.1. Poziomy separacji 1.1.2. Techniki integracji modułów 1.1.2.1. Zdarzenia 1.1.2.2. Wywołania API 1.1.2.3. Silniki procesów biznesowych 1.2. SOA 1.2.1. Duplikacja danych, ale nie duplikacja logiki 1.2.2. Zasada jednego Źródła Prawdy 1.3. Event Driven z wykorzystaniem JMS 1.3.1. Architektury oparte o zdarzenia 1.3.1.1. Events broker 1.3.1.2. Events Bus 1.3.1.3. Eventual Consistency 1.3.2. Zależności czasowe pomiędzy zdarzeniami 1.3.3. Sagi orkiestracja zdarzeń 1.3.4. Wykorzystanie JMS jako silnika zdarzeń biznesowych 1.4. Alternatywne podejścia do architektury systemu 1.4.1. Command + Command Handler 1.4.2. Ports and Adapters 1.4.2.1. Integracja 1.4.2.2. SOA ready Strona: 2/8

1.4.2.3. Strategia multiscreen 2. Architektury aplikacji 2.1. Podejście warstwowe 2.1.1. Różnice pomiędzy Layer a Tier 2.1.2. Ogólny podział - 3I 2.1.2.1. Interfejsy 2.1.2.2. Interakcje 2.1.2.3. Integracja 3. Wzorce warstwy prezentacji z wykorzystaniem JSF 3.1. MVC, MVP, MVVM - poszukiwanie odpowiedniej metafory dla Backing Bean 3.2. Front Controler i Page Controler 3.3. DTO - kiedy zastosowanie ma sens 3.4. Ekrany komponentowe - dobór odpowiedniego zasięgu dla fragmentów modelu 4. Wzorce warstwy logiki 4.1. Podział na logikę aplikacji i logikę domenową 4.2. Logika aplikacji 4.2.1. Modelowanie Use Case/User Story 4.2.2. Stanowo czy bezstanowo 4.2.3. Wykorzystanie Maned Beans i dobór odpowiedniego zasięgu 4.2.4. Zarządzanie transakcjami - poziomy ilozacji i propagacja transakcji 4.2.5. Transakcje aplikacyjne - wykorzystanie rozszerzonego trybu kontekstu persystencji 4.3. Logika domenowa i Techniki Domain Driven Design - Building Blocks 4.3.1. Agregaty - mapowanie relacyjno obiektowe zgodne z zasadami Object Oriented 4.3.2. Encje Strona: 3/8

4.3.3. Value Objects 4.3.4. Serwisy Domenowe 4.3.5. Polityki 4.3.6. Specyfikacje 4.3.7. Fabryki 4.3.8. Repozytoria - poprawne wykorzystanie JPA 4.3.9. Modelowanie niezmienników 4.3.10. Poziomomy modelu: Capacity, Operations, Policy dostrajanie modelu, Decission Support 5. Wzorce warstwy dostępu do danych - wykorzystanie JPA 5.1. Shared Repository 5.2. DAO 5.3. Repository 5.4. Wzorce blokowania całych grafów obiektów (ochrona spójności zgodna z OO) 5.4.1. Optymistyczne - dobór podejścia do scenariusza 5.4.1.1. Wersjonowanie encji 5.4.1.2. Read (optimistic) 5.4.1.3. Write (optimistic_force_increment) - ochrona agregatów (grafów encji) 5.4.1.4. Pesymistyczne 5.4.1.5. Pułapki i najlepsze praktyki 5.5. Modelowanie encji 5.5.1. Wykorzystanie typów zagnieżdżonych do mapowania Value Objects 5.5.2. Modelowanie niezmienników 5.5.3. Dobór struktur danych w powiązaniu One-to-Many 5.5.3.1. Set Strona: 4/8

5.5.3.2. Bag 5.5.3.3. List 5.5.3.4. Unikanie zbędnych operacji odtwarzania i pobierania kolekcji 5.6. Mapowanie kolekcji 5.6.1. Tabele linkujące w powiązaniu One-to-Many 5.6.1.1. Kiedy stosować - kompozycja a agregacja 5.6.2. Strategie pobieranie w kontekście modelu biznesowego 5.7. Optymalizacja operacji 5.7.1. Pobieranie Proxy 5.7.2. Dynamiczny Update 5.8. Operacje kaskadowe a granica Agregatu 5.9. Problem identyfikacje encji - dobór podejścia 5.9.1. klucze główne 5.9.2. klucze naturalne 5.9.3. UUID 5.9.4. referencja w pamięci 5.10. Dziedziczenie 5.10.1. Kiedy dziedziczenie nie ma sensu w modelu biznesowym 5.10.2. Implementacje dziedziczenia - wady i zalety każdego z podejść 5.10.3. Pojedyncza tabela 5.10.4. Tabela per klasa 5.10.5. Tabele dla super klas 5.10.6. Alternatywa dla dziedziczenia 5.10.6.1. Party Archetype 5.10.6.2. Role Object Pattern Strona: 5/8

5.11. Wydajność dostępu do danych 5.11.1. Pułapki wydajności JPA 5.11.1.1. n+1 Select problem - wykrywanie i zapobieganie 5.11.1.2. Wykrywanie N+1SP 5.11.1.3. Wykrywanie automatyczne przy pomocy AOP 5.11.1.4. Sposoby naprawy N+1SP 5.11.1.5. JOIN FETCH 5.11.1.6. Batch size 5.11.2. Pułapki Lazy Loadingu oraz zbyt chciwego pobierania danych 5.11.2.1. Nadmierne pobieranie danych 5.11.2.2. Racjonalne wykorzystanie Lazy Loadingu 6. Strategiczne testowanie warstw ogólny przegląd podejścia 6.1. Problem eksplozji kombinatorycznej przypadków testowych 6.2. Testowanie górnych warstw w podejściu end2end 6.3. Testowanie dolnych warstw w podejściu jednostkowym 7. Praktyczne wykorzystanie technik Inversion of Control do budowy frameworków i systemów 7.1. Dependency Injection podstawowa technika IoC 7.1.1. Wykorzystanie zamiast wzorców fabrykujących 7.1.2. Budowanie konkretnych Strategii, Dekoratorów itd. w zależności od stanu aplikacji (kontekst, konfiguracja) 7.1.3. Otwartość na rozbudowę dzięki wzorcom Strategii 7.2. Systemy sterowane zdarzeniami silniejsza technika IoC 7.2.1. Użycie do tworzenie rozszerzalnych architektur opartych o pluginy 7.2.2. Użycie do tworzenia skalowalnych systemów wysokiej wydajności (wykorzystanie kolejek, np. JMS) 7.2.3. Sagi - Modelowanie złożonych procesów zdarzeniowych Strona: 6/8

7.3. Aspect Oriented Programming 7.3.1. Wykorzystanie interceptorów 7.3.2. Wstęp do AOP 7.3.3. Techniki Interceptorów 7.3.4. Przykłady zastosowania AOP 7.4. Projektowanie systemów otwartych na rozbudowę 7.4.1. Pluginy 7.4.2. Listenery 7.4.3. Wstrzykiwanie rozszerzeń 7.4.4. Podejście aspektowe 8. Command-query Responsibility Segregation rozszerzona architektura warstwowa 8.1. Wsparcie dla Domain Driven Design 8.2. Rozwiązanie problemów z niedopasowaniem ORM do przeglądu danych w Gridach 8.3. Zorientowanie na skalowanie i rozszerzalność 8.4. Tworzenie dedykowanych modeli: do odczytu, do operacji biznesowych 8.4.1. Rozwiązanie problemów z wydajnością 8.4.2. Architektura zewnętrznego indeksu z użyciem nosql 9. Testability projektowanie architektur aplikacji zorientowanych na testy 9.1. Strategiczne testowanie 9.1.1. Problem eksplozji kombinatorycznej przypadków testowych 9.1.2. Mapowanie warstw aplikacji na piramidę testów 9.1.3. Strategia 9.1.3.1. Warstwa domenowa - testowanie jednostkowe 9.1.3.2. Warstwa serwisów - testowanie end2end Strona: 7/8

9.2. Dążenie do uruchamiania logiki poza serwerem zwiększanie produktywności, redukcja czasu używanego na redeploy 9.3. Zagadnienia podatności architektury na testy: problemy i pułapki 9.4. Techniki testowania jednostkowego: dummy, fake, stub, mock 9.5. Narzędzia testowania jednostkowego i integracyjnego (JUnit, Mockito) 9.6. 3 poziomy testów 9.6.1. Specification by Example - cele biznesowe 9.6.2. Flow - User Story 9.6.3. Automatyzacja interakcji z UI - Agenty będące abstrakcją nad skryptem testowym Strona: 8/8