Powrót do katalogu

Podaj maila aby obejrzeć webinar z Node.js

Wyrażam zgodę na otrzymywanie informacji o promocjach i produktach oferowanych Czytaj więcej przez Vavatech Sp z o.o. Zgodę możesz cofnąć w każdym czasie.
Termin sugerowany
2019-11-11
Warszawa

Zapisz się jako pierwszy!

1 400 / 2 dni
Zgłoś chęć udziału
Termin sugerowany
2019-12-05
Warszawa

Zapisz się jako pierwszy!

1 400 / 2 dni
Zgłoś chęć udziału
Zaproponuj własny termin
Postaramy się uruchomić nowy termin dla Ciebie
Zgłoś chęć udziału

Inżynieria oprogramowania > Języki programowania > .Net

Szkolenie: Projektowanie oparte na domenie (Domain Driven Design)

Kod: [MS-DDD]
Pobierz program

Wprowadzenie

Projektowanie oparte na domenie (ang. Domain Driven Design) jest zarówno metodologią, jak i metodyką tworzenia oprogramowania, zakładającą tworzenie systemów informatycznych w oparciu o ciągle ewoluujący model biznesowy (tzw. domenę). Projektowanie oparte na domenie, oprócz szerokiego zestawu wskazówek i wzorców dla programistów, projektantów i architektów oprogramowania aż po menedżerów projektu, oferuje sposoby sprostania dwóm największym stojącym przed zespołami tworzącymi systemy informatyczne: komunikacją (w ramach zespołu oraz ze światem zewnętrznym), oraz kodem odziedziczonym. Zespół postępujący zgodnie z zasadami projektowania opartego na domenie potrafi nie tylko im sprostać, ale również uczynić z nich swoje mocne strony.

Cel szkolenia

Celem szkolenia jest zapoznanie uczestników z głównymi założeniami projektowania opartego na domenie oraz umożliwienie im wdrożenia jego elementów w projektach nad którymi pracują. Podczas szkolenia od podstaw tworzona będzie przykładowa aplikacja w technologi Microsoft.Net.

Po zakończeniu szkolenia aktywny uczestnik:

  • Rozumie ideę efektywnego komunikowania się w ramach zespołu oraz poza nim przy pomocy języka powszechnego.
  • Potrafi wyróżnić domenę oraz infrastrukturę w ramach systemu informatycznego. Potrafi również zaprojektować system informatyczny w oparciu o architekturę warstwową.
  • Potrafi zidentyfikować i wdrożyć wzorce projektowe stosowane w domenie.
  • Rozumie ideę tworzenia deklaratywnego kodu, zaszywania w domenie reguł biznesowych oraz dokumentowania projektu poprzez kod.
  • Rozumie ideę kontekstów, potrafi efektywnie integrować bądź wydzielać kod odziedziczony i niezależne aplikacje z systemu nad którym pracuje.
  • Potrafi wyróżnić i wdrożyć różnie podejścia do wspólnej pracy kilku zespołów w ramach tego samego projektu bądź z tym samym kodem.

Adresaci szkolenia

Szkolenie przeznaczone jest dla wszystkich osób zaangażowanych w tworzenie systemów informatycznych od strony techniczej oraz biznesowej, m. in. Programistów, Projektantów oprogramowania, Architeków oprogramowania, Specjalistów z dziedziny UX, Managerów projektów bądź osób zarządzających pracą zespołu.

Czas i forma szkolenia

14 godzin (2 dni x 7 godzin), w tym wykłady i warsztaty praktyczne.

Plan szkolenia

  1. Co to jest Projektowanie oparte na domenie?
    1. Co to jest domena?
      1. Domena
      2. Infrastruktura
      3. Ekspert domenowy
    2. Co to jest model?
      1. Model
      2. Reprezentacja/instancja modelu
    3. Architektura warstwowa.
      1. Wzorzec projektowy “sprytny interfejs” (smart UI)
      2. Podział oprogramowania na warstwy
      3. Warstwa danych
      4. Warstwa domeny (modelu, logiki biznesowej)
      5. Warstwa aplikacji
      6. Warstwa interfejsu
      7. Luźne połączenia między warstwami
    4. Język powszechny i komunikacja w zespole.
      1. Język powszechny
      2. Dokumentowanie oprogramowania
      3. Słownik z najważniejszymi pojęciami z języka powszechnego.
    5. Tworzenie oprogramowania w procesie iteracyjnym.
      1. Ewolucja modelu z naiwnego do zaawansowanego poprzez ciągłą naukę.
      2. Dlaczego dokumentowanie modelu nie jest zalecane?
  2. Z jakich elementów składa się domena.
    1. Co to jest wzorzec projektowy? Przypomnienie.
    2. Byt
      1. Co to jest byt?
      2. Co to jest tożsamość?
      3. Cykl życia bytu.
      4. Byty proste (POCO lub POJO)
    3. Wartość
      1. Co to jest wartość?
      2. Czym różni się wartość od bytu?
      3. Wartości nie posiadają cyklu życia.
    4. Usługa
      1. Co to jest usługa?
      2. Kiedy powinno się stworzyć usługę?
    5. Moduł
      1. Co to jest moduł?
      2. Jak nie dzielić oprogramowania na moduły?
      3. Jak dzielić oprogramowanie na moduły?
    6. Agregat
      1. Co to jest agregat?
      2. Co to jest korzeń agregatu?
      3. Korzeń agregatu jako jedyny umożliwia dostęp do obiektów w ramach agregatu oraz dodawanie i usuwanie obiektów w ramach agregatu.
      4. Korzeń agregatu odpowiada za sprawdzanie ograniczeń wewnątrz agregatu podczas zmiany jego stanu.
      5. Nie każdy obiekt zawierający kolekcję obiektów jest agregatem! Różnica pomiędzy agregacją i prostą relacją.
    7. Repozytorium
      1. Co to jest repozytorium?
      2. Czy agregat jest repozytorium? Czy repozytorium jest agregatem?
      3. Kiedy używać repozytorium?
    8. Fabryka
      1. Co to jest fabryka?
      2. Kiedy powinno się używać fabryki?
  3. Jak budować zaawansowany model?
    1. Co to jest przełom i co robić kiedy nastąpi?
      1. Co to jest przełom?
      2. Co robić kiedy nastąpi przełom?
      3. Dlaczego opłaca się wykorzystywać przełomy?
    2. Jak zdobywać/poszerzać wiedzę o domenie?
      1. Eksperci domenowi
      2. Literatura fachowa
    3. Modelowanie nietrywialnych obiektów w domenie.
      1. Modelowanie ograniczeń
      2. Modelowanie procesów, wzorzec projektowy “Strategia”, proces: od linijki kodu po osobną klasę
      3. Wzorzec projektowy “Specyfikacja”
    4. Pisanie elastycznego kodu.
      1. Deklaratywne nazewnictwo metod i interfejsów
      2. Metody bez skutków ubocznych
      3. Asercje
      4. Klasy z najmniejszą możliwą liczbą powiązań
    5. Używanie wzorców projektowych w domenie.
  4. Dzielenie modelu między zespołami.
    1. Co to jest kontekst i jak wyróżniać konteksty?
      1. Mapa kontekstów
    2. Metody dzielenia modelu z innym zespołem.
      1. Konformizm
      2. Wspólne jądro
      3. Warstwa ochronna
      4. Osobne ścieżki
      5. Zespół “dostawca” i zespół “klient”
      6. Ciągła integracja
    3. Metody publikowania modelu.
      1. Model otwartego hosta
      2. Język publikowany

Opinie uczestników