Domain-Driven Design (DDD)

Wprowadzenie
    Czas trwania
    Godzina rozpoczęcia
    Stopień trudności

      Szkolenie online Domain-Driven Design (DDD)

      Poznaj DDD, czyli szereg wzorców pomagających tworzyć aplikacje, w których domena jest na pierwszym miejscu.

      Opis szkolenia

      Szkolenie Domain-Driven Design Wprowadzenie przeznaczone jest dla programistów i architektów, którzy chcą nauczyć się wykorzystywania wzorców DDD do podejmowania lepszych decyzji związanych z architekturą oraz implementacją. Podczas szkolenia online DDD uczestnicy poznają zarówno techniki projektowania, czyli DDD strategiczne oraz tajniki praktycznego wykorzystania, czyli DDD taktyczne. Trener przedstawi także główne korzyści jak i granice stosowania wzorców DDD w kodzie.

      Jeśli chcesz lepiej zrozumieć podejście DDD i dowiedzieć się, jak optymalnie przeprowadzić ten proces, to już dziś zapisz się na szkolenie DDD online!  Dzięki niemu poznasz sposoby i techniki specjalistów z branży i dowiesz się, w jaki sposób tworzyć architekturę, która zawsze odpowiada na potrzeby biznesu!

      W ramach szkolenia poruszane będą też zagadnienia związane z Event Storming.

      Poznaj program szkolenia

      Co zyskasz dzięki szkoleniu ?

      Cele szkolenia 

      Celem szkolenia jest nabycie umiejętności praktycznego wykorzystania wzorców strategicznych oraz taktycznych Domain-Driven Design.

      Umiejętności

      Dzięki szkoleniu  uczestnik będzie:

      • Wykorzystywać wzorce strategiczne DDD do podjęcia decyzji związanych z architekturą
      • Wykorzystywać wzorce taktyczne DDD do utrzymania wysokiej jakości kodu
      • Stosować CQRS w celu separacji Data Model od Domain Model
      Czy to szkolenie jest dla Ciebie ?

      Profil uczestników

      Szkolenie przeznaczone jest dla programistów i architektów, którzy chcą nauczyć się jak wykorzystać wzorce DDD do podejmowania lepszych decyzji związanych z architekturą oraz implementacją.

      Szkolenie dla programistów, architektów, liderów technicznych.

      Przygotowanie uczestników

      Udział w szkoleniu nie wymaga szczególnego przygotowania.

      Czas trwania

      Przed nami:

      • 3 dni, 24 godziny szkoleniowe
      Szczegółowy program szkolenia

      1. Wprowadzenie do Domain-Driven Design

      • Wady i zalety DDD
      • Rodzaje i stosowalność Domain-Driven Design

      2. Zasady DDD i architektura

      • Domain Model, a Read Model
      • Command Query Responsibility Segregation
      • Przegląd architektur

      3. Poznawanie domeny

      • Ubiquitous Language
      • Wprowadzenie do Event Storming
      • Rodzaje Event Storming

      4. Wzorce taktyczne DDD

      • Modelowanie domeny przy pomocy Aggregate, Entity oraz Value Object
      • Dbanie o cykl życia dzięki Factory i Repository
      • Domain Service - utrzymywanie spójności domeny
      • Event - komunikacja pomiędzy domenami
      • Policy - rozszerzanie agregatów
      • Specification - modelowanie złożonych reguł

      5. Wzorce strategiczne DDD

      • Rodzaje domen
      • Bounded Context i Context Mappings

      6. Testowanie a DDD

      • Wybór odpowiedniego typu testu
      • Poprawne korzystanie z Mocków 


      Metoda realizacji szkolenia

      Analiza domeny wykorzystując technikę Event Storming. Podejmowanie decyzji architektonicznych w oparciu o uzyskane informacje i wykorzystując wzorce strategiczne DDD. Implementacja Core Domain przy użyciu wzorców taktycznych DDD.

      POBIERZ PROGRAM W PDF

      Ścieżka rozwoju

      Szkolenia:

      Książki:

      • Implementing Domain-Driven Design
      • Domain-Driven Design Distilled
      • Domain-Driven Design
      • Domain-Driven Design. Zapanuj nad złożonym systemem informatycznym
      W ramach szkolenia zapewniamy

      W ramach szkolenia zapewniamy

      • materiały szkoleniowe
      • certyfikat potwierdzający udział w kursie
      • pełna obsługa cateringowa (dla szkoleń stacjonarnych)

      Co to jest Domain Driven Design (DDD)?


      Domain Driven Deisgn to model tworzenia oprogramowania, który jest nastawiony na elastyczność i możliwość wprowadzania dodatkowych funkcjonalności na dowolnym etapie jego rozwoju.

      Głównym zadaniem modelu DDD jest odpowiadanie na potrzeby klienta. W modelu DDD określa się je także jako potrzeby biznesu i są one „warunkami koniecznymi”, czyli tymi funkcjonalnościami, które muszą zostać zawarte w oprogramowaniu. W przeciwieństwie do innych modeli rozwoju oprogramowania, Domain Driven Design charakteryzuje się tym, że nie kładzie nacisku na typowe elementy komunikacji, takie jak jak m.in.: interfejs użytkownika, obsługa wejść i wyjść lub obsługa baz danych. Zamiast implementuje się funkcjonalności, która odpowiadają na potrzeby klienta.

      Zalety i wady Domain Driven Design

      Zalety Domain Driven Design

      Jedną z kluczowych zalet modelu DDD jest to, że stanowi on najlepsze rozwiązanie w przypadku złożonych projektów. To podejście warto zastosować zwłaszcza wtedy, kiedy na początku nie da się zaplanować wszystkich funkcjonalności i wiadomo, że w trakcie prac będą pojawiały się liczne zmiany i nowe implementacje.

      DDD eliminuje także ryzyko wystąpienia nieporozumień. W trakcie rozwoju tego modelu stworzono metodę skutecznej komunikacji, którą jest Ubiquitous Language, czyli  język wszechobecny. To pozwoliło wypracować metody skutecznej komunikacji pomiędzy programistami, ekspertami domenowymi (np. klientami) i innymi osobami odpowiedzialnymi za projekt.

      DDD – zasady współpracy

      Jednym z głównych założeń Domain Driven Design jest możliwie jak najlepsze oddanie potrzeb klienta (czyli biznesu) w gotowym oprogramowaniu. Elementem DDD, który przekłada się na lepszą współpracę, jest projektowanie logiki powstawania oprogramowania w postaci domen. Czym są domeny w DDD?

      Domena to taka potrzeba biznesu lub funkcjonalność, która musi zostać rozwinięta i zaimplementowana w trakcie rozwoju oprogramowania. W procesie DDD wyróżnia się 3 rodzaje domen:

      • domeny główne – zawierające najważniejsze funkcjonalności
      • domeny wspierające – będące uzupełnieniem, bez których domeny główne nie mogłyby poprawnie funkcjonować
      • domeny generyczne – zawierające ważne, ale niewymagane funkcje
      Wady Domain Driven Design

      DDD jest rozwiązaniem, które ułatwia tworzenie złożonego oprogramowania zawierającego wiele funkcjonalności. Jak każde z narzędzi, nie jest ono jednak z założenia idealne.

      Największym problemem związanym z tworzeniem oprogramowania w tym modelu jest mała liczba specjalistów, którzy mogliby kompleksowo przeprowadzić ten proces od początku do końca. Zapisz się na szkolenie DDD online, aby stać się jednym z nich!

      Kolejnym czynnikiem, który może zniechęcać do rozpoczęcia prac w tym modelu jest to, że początkowy koszty rozwoju tego modelu jest wyższy. Warto także pamiętać o tym, że nie można dowolnie zmieniać modeli tworzenia oprogramowania w trakcie tego procesu. Na prace w modelu DDD trzeba zdecydować się już na samym początku.

      Wady DDD wynikają jedynie z jego specyficznego zastosowania – jeżeli określisz potrzeby swojego produktu i kodu, to w możesz odpowiedni model powstania oprogramowania i w pełni wykorzystać jego potencjał.

      DDD vs Event Storming

      DDD to skomplikowany proces, który wymaga zaangażowania i porozumienia wielu osób. Aby zagwarantować jego powodzenie, można korzystać z wielu dostępnych narzędzi. Jednym z nich jest właśnie Event Storming. 

      Wbrew wielu zapytaniom nie są to działania wykluczające się, a komplementarne. Even Storming to sposób planowania domen i struktury oprogramowania wynikający ze specyfiki DDD. Zazwyczaj są to warsztaty, podczas których spotykają się różne osoby związane z aplikacją: klienci, specjaliści i programiści. Event Storming może także odbywać się w formule online

      Spotkajmy się na szkoleniu Domain Driven Design!

      • Sebastian Malaca 

        Doświadczony architekt i lider specjalizujący się w programowaniu i projektowaniu obiektowym oraz technikach i praktykach pozwalających tworzyć kod wysokiej jakości. Głównymi obszarami jego zainteresowań jest praktyczne wykorzystanie refaktoryzacji, testowania oraz technik wytwarzania oprogramowania w pracy z istniejącym kodem zarówno na poziomie pojedynczych klas jak i całych aplikacji.

        Podobne szkolenia

        Gitlab. Praca z kodem i procesem CI/CD
        Szkolenie warsztatowe, które ma na celu j poznanie narzędzia Gitlab, w taki sposób, by codzienne wykorzystanie ułatwiało pracę z repozytorium git oraz dogłębne rozumienie procesu CI/CD.
        Szkolenia z programowania
        Zapoznaj się z naszą bogatą ofertą szkoleń dotyczącą języków programowania, od tych cieszących się największą popularnością aż po niszowe i specjalistyczne.