Tworzenie złożonych systemów przy wsparciu Domain-Driven-Design

Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
- Wstęp - co zamierzamy osiągnąć
- Implementacja aplikacji w formie modularnego monolitu z wykorzystaniem Domain-Driven-Design
- Podstawy Domain-Driven-Design
- Domena i subdomeny
- Prawo Conwaya
- Cynefin framework
- Ubiqutous language
- Bounded context
- Wyznaczanie granic kontekstów
- Warstwa anti-corruption
- Warsztat event storming
- Wprowadzenie
- Big Picture
- Poziom procesowy
- Wyznaczanie granic agregatów
- Drivery architektoniczne
- Projekt architektury w notacji C4
- Poziom context
- Poziom containers
- Poziom components
- Poziom classes
- Przygotowanie środowiska pracy
- Instalacja środowiska deweloperskiego (IDE)
- Instalacja Javy
- Instalacja MySQL
- Zbudowanie projektu szkieletowego na podstawie szablonu z repozytorium
- Spring Boot - framework do tworzenia nowoczesnych aplikacji
- Architektura
- Beany i wstrzykiwanie zależności
- Adnotacje @Repository, @Service, @Controller, @Component
- Spring Data JPA
- REST
- Zasoby
- Metody HTTP
- Kody odpowiedzi
- Reprezentacje
- Domena
- CRUD vs domena
- Mapowanie domeny na REST
- Zasoby
- CQRS (Command Query Responsibility Segregation)
- Stos write
- Stos read
- Projekt koncepcyjny
- Encje w ujęciu DDD
- ORM
- model anemiczny
- model domenowy
- Agregaty domenowe
- modelowanie zachowań
- Scenariusze testowe domeny za pomocą testów jednostkowych w metodologii TDD
- Junit
- Mocki i stuby
- 100% pokrycia warstwy domenowej
- Unikanie pracy z serwerem
- Value Objects
- Czym są Value Objects
- Niezmienność w Value Objects
- Repozytorium domenowe
- Fabryka obiektów domenowych
- Serwisy aplikacyjne stosu write
- Testy serwisów
- Implementacja
- Serwisy domenowe
- Testy serwisów
- Implementacja
- Różnorodność zachowań biznesowych
- Strategie i polityki
- Specyfikacje
- Walidacja
- Implementacja stosu read
- Wydajność
- Mapowanie danych domenowych do DTO
- Endpointy
- Testowanie aplikacji za pomocą Swagger
- Testowanie aplikacji za pomocą Postman
- Integracja z interfejsem użytkownika
- Podsumowanie
- Co dalej? Zaproszenie na kurs o dzieleniu na mikroserwisy i integracji synchronicznej/asynchronicznej
- Gdzie zdobywać dodatkowe informacje o Domain-Driven-Design
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O szkoleniu
Kompleksowe i ultra praktyczne szkolenie pokazujące jak wygląda cały proces budowy systemu informatycznego ze złożoną domeną biznesową, poczynając od samego procesu zrozumienia wymagań i komunikacji z biznesem, aż do finalnej, wysokojakościowej i rozszerzalnej implementacji.
Cel szkolenia
Przeprowadzenie z uczestnikami szkolenia warsztatu Event Stormingu, jako narzędzia do ustalenia wspólnego słownika pojęć domenowych pomiędzy biznesem a developerami, zrozumienia wiedzy biznesowej i przekucia jej na konkretne wymagania architektury systemu. W dalszej części nauczymy się wyrażać te wymagania w postaci konkretnych wzorców i technik warsztatu programisty w języku Java. Na koniec przyjrzymy się tematyce testowania warstwy domenowej aplikacji.
Dla kogo?
Adresatami są osoby pracujące na codzień, lub mające zamiar pracować ze złożonymi systemami informatycznymi, z nietrywialną domeną (nie CRUD). Wymagane umiejętności to znajomość języka programowania Java, przynajmniej na średnim poziomie, podstawowa znajomość SQL oraz Spring Boot.
Co usprawnisz w swojej pracy?
Poprawisz umiejętności komunikacji z biznesem w jednym wspólnym, zrozumiałym dla obu stron języku. Zaczniesz lepiej rozumieć domenę biznesową aplikacji na którą pracujesz. Wprowadzisz do swojego projektu usprawnienia, które pomogą lepiej zaimplementować, a później zarządzać tym co decyduje o sukcesie projektu i jego przewadze rynkowej.
Gdzie użyjesz nabytą wiedzę?
Szkolenie przyda Ci się podczas pracy z nowopowstającymi oraz istniejącymi aplikacjami operującymi na złożonej domenie biznesowej, czyli praktycznie przy każdym projekcie bardziej ambitnym niż przeglądarka do bazy danych.
Czego się nauczysz?
Poznasz techniki pracy z Domain Driven Design zarówno na poziomie strategicznym jak i taktycznym (building blocki DDD)
Prework - jak przygotować się do szkolenia?
- Przypomnienie najważniejszych aspektów programowania w języku Java
- Podstawowe kontrukcje typu warunek, pętla itd.
- Programowanie obiektowe w Java
- Kolekcje
- Stream API
- Przypomnienie czym jest Spring Boot jako framework do tworzenia nowoczesnych aplikacji
- Beany/wstrzykiwanie zależności
- 3-warstwowa architektura
- Podstawy REST API
- Komunikacja z bazą danych
- Powtórka podstawowych informacji o bazach danych i języku SQL:
- Co to jest baza danych?
- Co to jest tabela?
- SELECT ... FROM ... WHERE .... ORDER BY
- INSERT/UPDATE/DELETE
Spring BOOT
Nowoczesny framework do szybkiego tworzenia aplikacji webowych. Pozwala w łatwy sposób udostępnić aplikację za pomocą wbudowanego serwera HTTP w postaci REST API. Umożliwia szybką implementację najbardziej potrzebnych funkcjonalności aplikacji, takich jak połączenie z bazą danych czy wysyłkę emaili.
MySQL
Jedna z najbardziej popularnych, relacyjnych baz danych. Bardzo dobrze wspiera język SQL (Structure Query Language). Jest wykorzystywana zarówno w małych jak i dużych projektach. Cechuje się wysoką niezawodnością i szybkością działania.
Domain Driven Design
Metodologia wytwarzania oprogramowania w oparciu o nacisk na jak najlepsze odzwierciedlenie rzeczywistych procesów biznesowych. Powstała jako narzędzie do skutecznego budowania aplikacji posiadających złożoną domenę biznesową. Wykorzystanie DDD ma zapewnić długofalową utrzymywalność projektu na wysokim poziomie, szybkie dostosowanie do zmieniających się warunków biznesu oraz zapobieganie rozkładowi takiego systemu w przyszłości.
Prowadzący szkolenie:
Marcin Nowak
Architekt oprogramowania i lider techniczny z 11-letnim doświadczeniem w programowaniu w technologii Java i tworzeniu systemów klasy Enterprise. Posiada wieloletnie doświadczenie w pracy z systemami zarówno legacy jaki i greenfield, posiadającymi bardzo złożoną i trudną w zrozumieniu domenę biznesową (life science, farmacja, procesy produkcji, energetyka zawodowa). Wielki entuzjasta Domain Driven Design, architektury zdarzeniowej (EDA) oraz mikroserwisowej. Zwolennik dzielenia się wiedzą (https://appsynergy.pl) i przekazywania jej w jak najprostszy sposób, najlepiej na przykładach zaczerpniętych z prawdziwych projektów. Widział pracę z obu stron projektu (biznes i developerzy), więc bardzo dobrze rozumie potrzebę grania obu ekip do jednej bramki. Prywatnie szczęśliwy mąż i ojciec dwójki synów.
Stanowisko robocze

Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia

Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Architektura oprogramowania



