14 Godzin, 2 Dni

[MS-DDD] Projektowanie oparte na domenie (Domain Driven Design) (2 dni)

Cena do ustalenia
więcej terminów () mniej terminów
  • 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 technologiMicrosoft.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.

    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

  • Imienny certyfikat uczestnictwa

  • Szkolenia prowadzone są w formie wykładów oraz warsztatów praktycznych.
    Główny nacisk kładziony jest na ćwiczenia praktyczne, podczas których uczestnicy mają okazję na praktycznych przykładach sprawdzić i utrwalić zdobytą wiedzę teoretyczną.

    Na życzenie Klienta możliwe jest przeprowadzenie sprawdzającego testu końcowego.

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

  • 0 PLN + 23% VAT za szkolenie

  • ----

Damian Zalewski

Szkolenia o podobnej tematyce