Domain Driven Design w procesie tworzenia aplikacji na przykładzie rozwiązań JEE

LICZBA DNI: 3 (24h)

KOD KURSU: J/DDD

# requirements

# domain-driven-design

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne WYŁĄCZNIE na zamówienie.

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin

Interesuje Cię ta tematyka i szukasz szkolenia tylko dla siebie?

O szkoleniu

DLA KOGO?

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

WYMAGANIA

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),

Podstawowe koncepcje związane z programowaniem aplikacji JEE (do poznania na kursie J/EE6), w szczególności znajomość JSF 2, EJB 3 oraz JPA (Hibernate)

ZALETY

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

Cele szkolenia

Zapoznanie z alternatywnym sposobem tworzenia aplikacji JEE w stosunku do podejścia najczęściej spotykanego (anemiczny model danych)

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

Program

  • Warstwowość aplikacji JEE w różnym ujęciu
    • Architektura trójwarstwowa (klient, aplikacja, baza danych)
    • Warstwowość w aplikacjach JEE – architektura aplikacji (model danych, warstwa prezentacji, warstwa logiki, warstwa dostępu do bazy danych)
  • Anemiczny model danych
  • Alternatywa do anemicznego modelu danych – Domain Driven Design
  • Obiektowość a model danych
    • Low Coupling
    • Cohesion
  • Metodologia prowadzania projektu i jej wpływ na proces budowy rozwiązania
    • Ciężkie metodologie np. Prince2 i podejście „Waterfall”
    • Metodologie zwinnej tj. „Agile”
  • Zalety i wady anemicznego modelu danych
  • Zalety i wady DDD
  • Wybór modelu danych oraz kluczowych założeń dotyczących architektury w praktyce
    • Czy tylko kwestie techniczne są istotne ?
    • Na co zwracać uwagę ?
  • Inny sposób myślenia, technologie to rzecz wtórna
  • Najważniejsze pojęcia
    • Ubiquitous Language
    • Entities
    • Value Objects
    • Agregaty
    • Repozytoria
    • Domain Services
    • Fabryki
    • Bounded Context
  • Rozwój aplikacji w modelu DDD
    • Faza tworzenia aplikacji
      • 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
    • Faza testowania aplikacji
      • DDD a Test Driven Design (TDD)
      • DDD a Behavior Driven Design (BDD)
      • Faza testowania w kontekście wybranej architektury rozwiązania oraz metodologii prowadzenia projektu
    • Faza utrzymania i rozwoju
      • Korzyści z wykorzystania DDD od POCZĄTKU projektu
  • Implementacja modelu danych z wykorzystaniem Entities, Value Objects oraz Agregatów
    • Różnica między Entity a ValueObject
    • Odwzorowanie Entity oraz ValueObject na poziomie bazy danych
    • Wykorzystanie Agregatów
  • Repozytoria w kontekście komunikacji z bazą danych
    • JPA a repozytoria
    • Dependency Injection
  • Wdrożenie warstwy logiki
    • 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)
    • Bezstanowość usług
  • Implementacja warstwy interfejsu oraz złożenie projektu w całość
  • Builder
  • State Machine
  • Chain of Responsibility
  • Supple Design

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.