Domain Driven Design - projektowanie modeli złożonych domen (część

Podobne dokumenty
Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

Domain Driven Design - projektowanie modeli złożonych domen (część

Receptury - niezbędnik projektanta i architekta

Implementacja Domain Driven Design - wzorce architektoniczne (część

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Wzorce projektowe i architektura dla platformy Java EE

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Szkolenie wycofane z oferty

Program szkolenia: Wzorce projektowe i architektoniczne oraz efektywne techniki Object Oriented Design dla projektantów systemów

Analiza biznesowa a metody agile owe

Wykład 1 Inżynieria Oprogramowania

Java Persistence API - zagadnienia zaawansowane

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Jak uchronić architekturę i wymagania przed chaosem? Warszawa, 27 stycznia 2016 roku

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Program szkolenia: Wzorce projektowe w C++

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

PRZEWODNIK PO PRZEDMIOCIE

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Domain Driven Design krok po kroku

Feature Driven Development

PRZEWODNIK PO PRZEDMIOCIE

Program szkolenia: REST i Microservices w PHP

Program szkolenia: Continuous Integration i Git

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Program szkolenia: Jenkins - Continuous Integration

WPROWADZENIE DO UML-a

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Programowanie zespołowe

Narzędzia CASE dla.net. Łukasz Popiel

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Warsztaty FRAME. Sygnatura warsztatu: W1 (W3) Czas trwania: 3 dni

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Projektowanie systemów informatycznych. wykład 6

Programowanie Zespołowe

Testowanie oprogramowania

Architektura oprogramowania w praktyce. Wydanie II.

Opis wymagań i program szkoleń dla użytkowników i administratorów

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

DDD : dla architektów oprogramowania / Vaughn Vernon. Gliwice, cop Spis treści

Wytwarzanie oprogramowania

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Podstawy modelowania programów Kod przedmiotu

Model Matematyczny Call Center

Analityk i współczesna analiza

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

Luki w bezpieczeństwie aplikacji istotnym zagrożeniem dla infrastruktury krytycznej

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Proces projektowania i wdrożenia serwisu internetowego

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Zarządzanie firmą Celem specjalności jest

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Opis metodyki i procesu produkcji oprogramowania

OD MONOLITU DO MIKROUSŁUGI MICROSERVICES

Podstawy programowania III WYKŁAD 4

Cykle życia systemu informatycznego

Egzamin / zaliczenie na ocenę*

Projektowanie Modeli Usług dla rozwiązań typu SOA

Praktyczne techniki przygotowania oraz prowadzenia prezentacji

Scala - programowanie obiektowo-funkcyjne

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

X-DRIVEN DESIGN, Y-DRIVEN DEVELOPMENT NICZEGO NIE ZMIENIĄ

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Responsive Web Design:

Inżynieria oprogramowania. Jan Magott

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Szkolenie: ISTQB Model-Based Tester

Technologie obiektowe

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Etapy życia oprogramowania

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Projekt. Młodzi dla Środowiska

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Analiza i projektowanie aplikacji Java

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Transkrypt:

Program szkolenia: Domain Driven Design - projektowanie modeli złożonych domen (część 1) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Domain Driven Design - projektowanie modeli złożonych domen (część 1) ddd-workshop-ddd Warsztaty eksperckie DDD architekci developerzy analitycy 3 dni 60% wykłady / 40% warsztaty Autorski program oparty na 9 latach doświadczenia w stosowaniu i nauczaniu DDD. Zarys DDD Domain Driven Design jest obecnie jedyną metodyką, która w sposób kompleksowy wspiera od strony technicznej zwinne podejście do wytwarzania oprogramowania. Kompleksowe podejście DDD obejmuje: modelowanie złożonych domen we współpracy z Ekspertem Domenowym, zalecane architektury i projektowanie z wykorzystaniem sprawdzonych Building Blocks aż po techniki tworzenia testowalnego kodu, który z założenia jest otwarty na iteracyjny proces rozbudowy i kruszenia wiedzy (Knowledge Crunching). Korzyści płynące z wykorzystania DDD Zakres Techniki i wzorce strategiczne, których celem jest rozwiązanie typowych problemów organizacyjnych efektywne techniki prowadzenia sesji modelowania z uczestnictwem Ekspertów Domenowych skupienie wysiłku na Core Domain: inwestycja najlepszych ludzi i technik DDD jedynie w krytyczne moduły techniki separacji osobnych domen (Bounded Context) wyznaczanych przez granice wiedzy Ekspertów Domenowych, redukcja ryzyka związanego z tworzeniem monolitów techniki integracji modułów otwartych na zmiany i skalowanie wydajnościowe strategie współpracy zespołów (w tym w modelu outsourcing) pracujących nad osobnymi modułami Techniki i wzorce taktyczne, których celem jest rozwiązanie typowych problemów technicznych i jakościowych język wzorców dla tworzenia modelu - Building Blocks architektury odpowiednie do tworzenia rozszerzalnych systemów podejścia wspierające i ułatwiające testowanie automatyczne Płynna integracja ze Scrum dzięki podejściu Modeling Whirlpool Techniki modelowania problemów biznesowych techniki z poziomu Wzorców Taktycznych: Building Blocks DDD wraz z najlepszymi praktykami oraz elementami rozszerzonymi. Strona: 1/7

techniki z poziomu Wzorców Strategicznych: Domain Distillation, Bounded Context, poznasz praktyczne podejścia i sposoby prowadzenia sesji modelowania. Implementacja DDD Techniki implementacji DDD (architektura aplikacyjna i systemowa, wykrzyknienie IoC i ORM) są omawiane na szkoleniu DDD-implementacja, które powinno nastąpić w drugiej kolejności, po szkoleniu z zakresu modelowania. Forma Przyrostowe stosowanie wiedzy w praktyce Szkolenie prowadzone jest w formie, która łączy następujące po sobie na przemian wykłady, warsztaty i dyskusje. Podczas wykładów trener prezentuje kolejne rozdziały wiedzy merytorycznej, uzupełniając je o komentarze na podstawie własnych doświadczeń. Podczas warsztatów tworzymy dwa moduły systemu klasy ERP. Kolejne zadania polegają na przyrostowym dodawaniu nowych funkcjonalności w sposób ilustrujący zagadnienia teoretyczne poznane podczas poprzedzającego je wykładu. Podczas dyskusji uczestnicy mają dostęp do wiedzy eksperckiej trenera oraz mają możliwość zweryfikowania swoich rozwiązań z wypracowanymi przez innych uczestników szkolenia. Trzy sesje modelowania Event Storming W pierwszej fazie warsztatów uczestnicy rozwiązują postawione przed nimi problemy pracując nad modelem w grupach - faza ta ma na celu nabranie biegłości w posługiwaniu się technikami DDD. Po zapoznaniu się z technikami DDD przychodzi czasu na przeprowadzenie realnej sesji Modelling Whirlpool gdzie członkowie każdej grupy grają role: Ekspert Domenowy, Modelarz, Koordynator - faza to ma ba celu ugruntowanie się wiedzy gotowej do stosowania w codziennej praktyce. Projekt referencyjny Sprawdź naszą implementację przykładowego projektu DDD+CqRS: Sample Leaven. Zalety szkolenia: Uświadomisz sobie kompetencje miękkie jakie powinien posiadać Modelarz Techniki modelowania: lingwistyczne i wizualne Prezentacja alternatywnych podejść wraz z omówieniem konsekwencji Strona: 2/7

Szczegółowy program: 1. Wstęp do Domain Driven Design - unifikacja analizy i projektowania 1.1. Stosowalność DDD 1.1.1. Klasa złożoności systemu 1.1.2. Głębokość systemu - co system robi "pod maską" 1.1.3. Systemy sterujące światem vs systemy zbierające dane 1.1.4. Kiedy nie stosować DDD 1.1.5. Podejście DDD Lite - zwiększenie jakości technicznej 1.2. Role w procesie - odpowiedzialność i cechy osobowości i umiejętności 1.2.1. Ekspert domenowy - źródło wiedzy, walidator modelu 1.2.2. Modelarz (architekt domeny) - twórca modelu 1.2.3. Facilitator - koordynator procesu we wstępnej fazie 1.3. Wprowadzenie Ubiquitous Language 1.3.1. Wspólna płaszczyzna porozumienia pomiędzy Ekspertami Domenowymi i zespołem developerskim 2. Proces i techniki modelowania 2.1. Event Storming 2.1.1. Notacja 2.1.2. Fazy 2.1.3. Tips and Tricks 2.2. Podejście "od procesu" vs podejście "od domeny" 2.3. Zwinny Proces Modelowania "Model Exploration Whirlpool" 2.3.1. Fazy 2.3.2. Artefakty 2.3.3. Walidacja modelu Strona: 3/7

2.4. Techniki lingwistyczne 2.4.1. User Story vs Domain Story 2.4.2. Techniki pełnych zdań zamiast zbierania rzeczowników 2.4.3. Eksploracja domeny przy pomocy zdań podmiot.orzeczenie(dopełnienie, przydawka) 2.4.4. Gibberish Game - usuwanie dwuznaczności i odkrywanie nowych koncepcji domenowych 2.5. Techniki wizualizacji 2.5.1. Grupowanie operacji wokół niezmienników 2.5.2. Metafory wizualne realnych Agregatów 2.5.3. Poziomy modelu 2.5.4. Separacja modelu pod kątem podatności na zmiany i niestabilności 2.6. Przełożenie Use Case/User Story na warstwę aplikacji 2.7. Przełożenie modelu biznesowego na building blocks warstwy domenowej 3. Wzorce Taktyczne - Building Blocks 3.1. Koncepcja języka Wzorców DDD 3.1.1. Potrzeba większej ilości building blocks niż serwis i encja (procedura i struktura danych) 3.2. Encje 3.2.1. Obiekty do który możemy odnieść się w formie "ten obiekt" 3.3. Agregaty 3.3.1. Hermetyzacja i otwarcie na rozbudowę 3.3.2. Strategie określania granicy agregatu 3.3.3. Modelowanie niezmienników 3.3.4. Techniki lingwistyczne 3.3.4.1. Pełne zdania: podmiot.orzeczenie(dopełnienie, przydawka) 3.3.4.2. Odwrócenie kolejności: Słowo-Znaczenie(Kontekst)-Reguły Strona: 4/7

3.4. Value objects 3.4.1. Obiekty do który możemy odnieść się w formie "taki obiekt" 3.4.2. Zwiększenie siły wyrazu 3.4.3. Styl funkcyjny 3.5. Serwisy Domenowe 3.5.1. Model procedur biznesowych 3.6. Repozytoria 3.6.1. Abstrakcja magazynu danych 3.6.2. Orientacja na model domenowy zamiast na model danych 3.7. Fabryki 3.7.1. Walidacja 3.7.2. Logika biznesowa podczas składania obiektów 3.7.3. Wsparcie dla testability 3.8. Polityki (strategie) 3.8.1. Modelowanie w stylu funkcyjnym 3.8.2. Open Close Principle (SOLID) w praktyce 3.8.3. Podejście Supple Design 3.8.4. Dekorowanie 3.8.5. Umiejscowienie w 4 poziomach modelu 3.9. Zdarzenia biznesowe 3.9.1. Decoupling Bounded Context 3.9.2. Anticorruption Layer 3.10. Specyfikacje 3.10.1. Modelowanie złożonych warunków biznesowych 3.11. Dodatkowe wzorce - rozszerzenia Building Blocks Strona: 5/7

3.11.1. Sagi - modelowanie złożonych procesów biznesowych 3.11.2. Dekoratory Polityk - Supple Design 3.11.3. Agregat jako maszyna stanów 3.11.4. Łańcuch odpowiedzialności 3.11.5. Budowniczy 3.12. Praktyczne przykłady modelowania biznesowego z wykorzystaniem Building Blocks 4. Wzorce Strategiczne 4.1. Domain distillation - techniki wyłaniania 4.1.1. Core Domain 4.1.2. Supporting Domain 4.1.3. Generic Domain 4.2. Bounded Context - separacja i integracja 4.3. Shared Kernel - najlepsze praktyki 4.4. Conformist - kiedy warto stosować 4.5. Cztery poziomy modelu dużej skali 4.5.1. Capability 4.5.2. Operations 4.5.3. Policy 4.5.4. Decision Support 5. Architektura aplikacji - uwspólnienie modelu analitycznego i projektowego 5.1. Zwiększanie poziomu czytelności kodu poprzez Domain Specific Language 5.2. Podział logiki na aplikacyjną i domenową 5.3. Podejście warstwowe - rozmieszczenie building blocks na warstwach 5.3.1. Warstwa interfejsów (prezentacji) 5.3.2. Warstwa logiki - rozwarstwienie na dwie warstwy logiki Strona: 6/7

5.3.2.1. Logika aplikacyjna (API) 5.3.2.2. Model tego CO system powinien robić (User Case lub User Story) 5.3.2.3. Zapis Domain Story w formie czytelnej prozy 5.3.2.4. Logika domenowa (Building Blocks DDD) 5.3.2.5. Model tego JAK i DLACZEGO system powinien się tak zachowywać 5.3.3. Warstwa infrastruktury 5.3.3.1. Dostęp do danych 5.3.3.2. Infrastruktura techniczna 5.4. Przełożenie Use Case/User Story na warstwę aplikacji 5.5. Przełożenie modelu biznesowego na building blocks warstwy domenowej 5.6. Modelowanie Bounded Context 5.6.1. Decoupling 5.6.2. Integracja 6. Architektura systemu 6.1. Strategiczne projektowanie 6.1.1. Określenie Core Domain 6.1.2. Integracja z domenami Generic i Supporting 6.2. Zarys architektury integracji modułów 6.2.1. Event Driven Architecture 6.2.2. Microservices Strona: 7/7