Szkolenia dla programistów - BNS IT
Szkolenia AgileKonferencje Publikacje Klienci Zespół
 
 
Domain-Driven Design w praktyce
lista szkoleń
OPIS
Tworzenie złożonych systemów wymaga uporządkowanego podejścia zarówno w sferze technicznej jak i sferze modelów dziedzinowych. Domain-Driven Design przychodzi z pomocą w postaci całego zestawu wzorców strategicznych i taktycznych, dzięki którym zespoły mogą w zarządzalny sposób strukturyzować system w zbalansowane moduły a następnie w bloki budujące. DDD to sprawdzone podejście, które umocniło swoją pozycje w świecie coraz powszechniejszych ostatnio Microservices jako jedna z głównych praktyk projektowych.
WYMAGANE UMIEJĘTNOŚCI
• Uczestnik ma za sobą minimum 2-letnie doświadczenie realizacji systemów informatycznych.
• Uczestnik zna zagadnienia projektowania i programowania obiektowego na poziomie średniozaawansowanym.

Szkolenie zamknięte jest prowadzone głównie w językach Java i C#. Po wcześniejszych ustaleniach szkolenie może być zrealizowane w innych językach np. PHP, C++, Python.
PODSTAWOWY PROGRAM
Moduł 1. Wprowadzenie do Domain-Driven Design
Moduł 2. Destylacja dziedziny
Moduł 3. Model dziedziny
Moduł 4. Architektura aplikacji
Moduł 5. Komunikacja pomiędzy Bounded Contextami (BC)
Moduł 6. Wzorce taktyczne DDD
Moduł 7. Event Sourcing
Moduł 8. CQRS
Moduł 9. Command i Query w praktyce
SZCZEGÓŁOWY PROGRAM
Moduł 1. Wprowadzenie do Domain-Driven Design
  • Główne wyzwania w tworzeniu oprogramowania
  • Anemiczne modele
  • Praktyki i zasady DDD
  • Czy nie jest DDD
  • Język dziedzinowy
  • Ubiquitous Language
  • Osadzenie DDD w różnych stylach architektonicznych
  • DDD a Microservices
  • Wyzwania stojące przed zespołem rozpoczynającym prace z DDD
  • Dobre praktyki związane z wdrażaniem DDD
Moduł 2. Destylacja dziedziny
  • Klaryfikacja wiedzy o dziedzinie i współpraca z ekspertem dziedzinowym
  • Wykorzystywanie istniejących modeli
  • Jak uchwycić esencję problemu?
  • Core Domain
  • Poddziedziny i ich wpływ na kształt systemu
  • Czy każda część systemu musi być dobrze zaprojektowana?
Moduł 3. Model dziedziny
  • Czym jest model dziedziny?
  • Model-Driven Design
  • Rola Ubiquitous Language w analizie
  • Jak tworzyć dobre modele?
  • Założenia implementacyjne związane z warstwą dziedzinową
  • Wzorce warstwy dziedzinowej
  • Czy jeden model to dobry kierunek?
  • Używanie Bounded Contextu
  • Strategie implementacyjne związane z Bounded Contextami
  • Mapa rzeczywistości
  • Zależności pomiędzy Bounded Contextami
  • Efektywne wykorzystanie Context Map
Moduł 4. Architektura aplikacji
  • Architektura aplikacji
  • Usługi aplikacyjne
  • Klienty aplikacji
  • UI a DDD
Moduł 5. Komunikacja pomiędzy Bounded Contextami (BC)
  • Strategie integracji BC
  • Strategie integracji BC w środowisku rozproszonym
  • SOA oraz reaktywne DDD
  • Integracja poprzez messaging
  • Integracja poprzez HTTP REST i RPC
Moduł 6. Wzorce taktyczne DDD
  • Wzorce ułatwiające modelowanie dziedziny
  • Wzorce związane z cyklem życia
  • Value Objects
  • Entities
  • Domain Services
  • Domain Events
  • Agregaty
  • Fabryki
  • Repozytoria
  • Moduły
  • Transakcje w DDD
Moduł 7. Event Sourcing
  • Wady przechowywania stanu w postaci zrzutu (Snapshot)
  • Stan jako strumień zdarzeń
  • Agregaty oparte o zdarzenia
  • Tworzenie Event Store
  • CQRS a Event Sourcing
  • Wady i zalety Event Sourcing
Moduł 8. CQRS
  • Kiedy jeden model to za mało
  • Model Command
  • Model Query
  • Strategie implementacyjne
Moduł 9. Command i Query w praktyce
  • Odróżnianie logiki aplikacyjnej i dziedzinowej
  • Wzorce usług aplikacyjnych
  • Testowanie usług aplikacyjnych
  • Raportowanie w obszarze Bounded Contextu
  • Raportowanie dla wielu Bounded Contextów
JAK ZAMÓWIĆ
< lista szkoleń
zamów szkolenie zamknięte
PARAMETRY SZKOLENIA
Czas trwania 3 x 8h
Forma zajęć Ćwiczenia - 60%, wykład 40%
Kod DDD
Wielkość grupy do 10 osób
 
 
Touching the Void
Radość tworzenia
oprogramowania
Pawel.Wrzesz.cz
BNS IT
Plac Przymierza 6/26
03-944 Warszawa