Adresaci szkolenia

Szkolenie adresowane jest do programistów, projektantów oraz architektów systemów JEE, pragnących poznać metody projektowania oraz implementacji rozwiązań z obszaru aplikacji JEE z wykorzystaniem podejścia DDD.

Cel szkolenia

Celem szkolenia jest zapoznanie uczestnika z alternatywnym sposobem tworzenia aplikacji JEE w stosunku do podejścia najczęściej spotykanego (anemiczny model danych)

Kluczowe zagadnienia:

  • Architektura oraz warstwowość aplikacji JEE
  • Co to jest DDD i czy rzeczywiście warto z tego podejścia skorzystać
  • DDD a anemiczny model danych – zalety oraz wady każdego z nich
  • Metodologie prowadzenia projektu i ich wpływ na końcowy kształt systemu
  • Persystencja modelu danych oraz potencjalny problem z odwzorowaniem ValueObject w bazie danych

Mocne strony szkolenia

Szkolenie nie skupia się tylko i wyłącznie na zaprezentowaniu koncepcji związanych z DDD. Jednym z ważniejszych jego elementów jest zaprezentowanie DDD w porównaniu z najczęściej spotykanym podejściem przy implementacji modelu danych tj. implementacją tzw. anemicznego modelu danych. Co więcej, obecnie coraz więcej projektów jest realizowanych w podejściu zwinnym (Agile), warto więc przybliżyć nieco powiązania pomiędzy wyborem metodologii prowadzenia projektu a faktyczną architekturą jaka w tym procesie powstaje (zostanie uwzględnione również podejście z wykorzystaniem tzw. metodologii „ciężkich”). Generalnie, nie istnieje jedno idealne rozwiązanie. Uczestnictwo w niniejszym szkoleniu pozwala jednak z zupełnie innej perspektywy spojrzeć na proces projektowania i budowy rozwiązań JEE jak również zdobyć wiedzę, gdzie i kiedy dane rozwiązanie jest optymalne, a kiedy warto pomyśleć o czymś innym. Przykładowa aplikacja budowana będzie w oparciu o JSF 2, EJB 3 oraz JPA (Hibernate). Na życzenie istnieje możliwość przeprowadzenia szkolenia z wykorzystaniem innego zestawu technologii.

Wymagania:

Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java (do poznania na kursie J/JP), znajomość podstawowych zagadnień związanych z modelowaniem obiektowym (do poznania na kursie UML/BASE) oraz podstawowych koncepcji związanych z programowaniem aplikacji JEE (do poznania na kursie J/EE6), w szczególności znajomości JSF 2, EJB 3 oraz JPA (Hibernate).

Parametry szkolenia

3*8 godzin (3*7 godzin netto) wykładów i warsztatów.

Wielkość grupy: maks. 8-10 osób.

Program szkolenia

  1. Architektura aplikacji JEE – przegląd najważniejszych koncepcji i założeń
    1. Warstwowość aplikacji JEE w różnym ujęciu
      1. Architektura trójwarstwowa (klient, aplikacja, baza danych)
      2. Warstwowość w aplikacjach JEE – architektura aplikacji (model danych, warstwa prezentacji, warstwa logiki, warstwa dostępu do bazy danych)
    2. Anemiczny model danych
    3. Alternatywa do anemicznego modelu danych – Domain Driven Design
    4. Obiektowość a model danych
      1. Low Coupling
      2. Cohesion
    5. Metodologia prowadzania projektu i jej wpływ na proces budowy rozwiązania
      1. Ciężkie metodologie np. Prince2 i podejście „Waterfall”
      2. Metodologie zwinnej tj. „Agile”
  2. Który model dominuje w praktyce ?
    1. Zalety i wady anemicznego modelu danych
    2. Zalety i wady DDD
    3. Wybór modelu danych oraz kluczowych założeń dotyczących architektury w praktyce
      1. Czy tylko kwestie techniczne są istotne ?
      2. Na co zwracać uwagę ?
  3. DDD - wprowadzenie
    1. Inny sposób myślenia, technologie to rzecz wtórna
    2. Najważniejsza pojęcia
      1. Ubiquitous Language
      2. Entities
      3. Value Objects
      4. Agregaty
      5. Repozytoria
      6. Domain Services
      7. Fabryki
      8. Bounded Context
    3. Rozwój aplikacji w modelu DDD
      1. Faza tworzenia aplikacji
        1. Różnice w podejściu do fazy modelowania, budowy rozwiązania w zależności od przyjętych założeń architektonicznych oraz metodologii prowadzenia projektu
      2. Faza testowania aplikacji
        1. DDD a Test Driven Design (TDD)
        2. DDD a Behavior Driven Design (BDD)
        3. Faza testowania w kontekście wybranej architektury rozwiązania oraz metodologii prowadzenia projektu
      3. Faza utrzymania i rozwoju
        1. Korzyści z wykorzystania DDD od POCZĄTKU projektu
          1. Zależność fazy utrzymania i rozwoju od efektów faz poprzednich
          2. DDD a testowalność
          3. DDD a rozszerzalność (np. Open-Close Principle)
          4. Zgodność implementacji z oczekiwaniami klienta
  4. Implementacja przykładowej aplikacji w w podejściu DDD
    1. Implementacja modelu danych z wykorzystaniem Entities, Value Objects oraz Agregatów
      1. Różnica między Entity a ValueObject
      2. Odwzorowanie Entity oraz ValueObject na poziomie bazy danych
      3. Wykorzystanie Agregatów
    2. Repozytoria w kontekście komunikacji z bazą danych
      1. JPA a repozytoria
      2. Dependency Injection
    3. Wdrożenie warstwy logiki
      1. Miejsce i rola warstwy usług w kontekście faktu, iż logika jest implementowana na poziomie obiektów biznesowych/domenowych (np. Application/Domain/Infrastructure Services)
      2. Bezstanowość usług
    4. Implementacja warstwy interfejsu oraz złożenie projektu w całość
  5. DDD – wsparcie poprzez dostępne wzorce projektowe
    1. Builder
    2. State Machine
    3. Chain of Responsibility
    4. Supple Design
  6. Podsumowanie

Pytania?

* Wymagane.
** Szczegóły promocji w Regulaminie.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email