Agenda

// zobacz, czego się nauczysz
01
WPROWADZENIE
zwiń
Tydzień 01
Wstęp do Drogi Nowoczesnego Architekta
zwiń
01
Wstęp do architektury oprogramowania
02
Model C4 - wizualizacja architektury
03
Drivery architektoniczne - czym są i dlaczego trzeba je znać?
04
Architektura sterowana liczbami
05
Zwinna architektura
06
Zadanie - C4
07
Zadanie - Drivery architektoniczne
08
Zadanie - ADR
09
Zadanie - Metryki architektoniczne
Tydzień 02
Strategiczne DDD (Domain Driven Design) Problem Space
rozwiń
01
Architektura a biznes
02
Domena i subdomeny
03
Odkrywanie subdomen
04
Big Picture Event Storming Event Storming
05
Odkrywanie subdomen w praktyce
06
Metryki dla biznesu
07
Zadanie - Subdomeny
08
Zadanie - Big Picture Event Storming
09
Zadanie - Metryki dla biznesu
Tydzień 03
Strategiczne DDD (Domain Driven Design) Solution Space
rozwiń
01
Bounded Context
02
Subdomena a Bounded Context
03
Walidowanie granic kontekstów
04
Definiowanie Bounded Contextów w praktyce
05
Lokalne drivery architektoniczne
06
Prawo Conway’a
07
Zadanie - Subdomena a Bounded Context
08
Zadanie - Bounded Context
Tydzień 04
Style architektury (korporacyjnej i systemowej)
rozwiń
01
Monolit
02
Systemy rozproszone
03
Enterprise Service Bus (ESB)
04
Mikroserwisy
05
Autonomia
06
Wybor architektury systemowej
07
Zadanie - przegląd architektury
02
ARCHITEKTURA APLIKACYJNA
rozwiń
Tydzień 05
Style architektury aplikacyjnej
rozwiń
01
Architektura warstwowa
02
Architektura Hexagonalna
03
Architektura Pipes and Filters
04
Architektura typu mikrojądro
05
Dobór architektury do modułu
06
Strategia testowania a styl architektoniczny
Tydzień 06
Design level
rozwiń
01
Model domenowy
02
“Design Level Event Storming”
03
BDD strategiczne (specification by example)
04
Estymacja
05
Implementacja modelu
06
Agregaty
07
CQRS (Command Query Responsibility Segregation)
08
Saga jako process manager
09
Live coding demo
08
Zadanie
Tydzień 07
DDD "taktyczne"
rozwiń
01
Building blocks
02
Wzorce implementacyjne - VO
03
Wzorce implementacyjne - Encje
04
Wzorce implementacyjne - Łamanie reguł
05
Wzorce implementacyjne - Zdarzenia
06
Wzorce implementacyjne - Publikacja Zdarzeń
07
Wzorce implementacyjne - Transport Zdarzeń
08
Wzorce implementacyjne - Serwisy
09
Rozszerzalność / wektory zmiany
Tydzień 08
Modularyzacja
rozwiń
01
Wstęp do modularyzacji
02
Enkapsulacja
03
Coupling
04
Kohezja
05
Single Responsibility Principle
06
GRASP
07
TDD Done Right
Tydzień 09
REST
rozwiń
01
Maturity level i... co to jest REST?
02
Zasoby: URLe, metody & idempotentność
03
Domena w REST
04
Caching
05
HATEOAS
06
Wersjonowanie
07
Testowalność
08
Dokumentacja
09
CORS
10
Zadanie - przegląd API
03
PERSYSTENCJA
rozwiń
Tydzień 10
Persystencja
zwiń
01
Rodzaje baz danych (relacyjne, nierelacyjne, event sourcing)
02
Transakcyjność (ACID, async etc)
03
Zadanie - przegląd API
04
ORM
05
Rozproszone bazy danych (CAP, eventual consistency, consensus algorithm)
06
Rozproszony konsensus
04
SYSTEMY ROZPROSZONE
rozwiń
Tydzień 11
Systemy rozproszone
rozwiń
01
Przyczyny rozproszenia systemu
02
Podział prac projektowych
03
Błędy popełniane przy projektowaniu systemów rozproszonych
Tydzień 12
Mikroserwisy
rozwiń
01
Mikroserwisy a systemy rozproszone
02
SLA, SLO, SLI
03
Dostępność
04
Temporal coupling
05
Zero-downtime deployment
Tydzień 13
Komunikacja
rozwiń
01
Komunikacja synchroniczna a asynchroniczna
02
Typy komunikacji asynchronicznej
03
Transakcje rozproszone / sagi
04
API publiczne vs API prywatne (i wersjonowanie)
05
“Design for failure”
06
Wzorzec circuit breaker
07
Client side load balancing
08
Service discovery
Tydzień 14
Jakość komunikacji
rozwiń
01
Jakość komunikacji
02
Testy E2E
03
Testy kontraktowe
04
Consumer driven contracts
05
Stuby w procesie lokalnego programowania
06
Tracing i korelacja logów
07
Live demo
Tydzień 15
Security
rozwiń
01
Poziomy bezpieczeństwa
02
Edge service
03
OAuth + OpenID Connect
05
CI/CD
rozwiń
Tydzień 16
Continuous Integration, Deployment & Delivery
zwiń
01
Pipeline wdrożeniowy
02
Poziomy dojrzałości (integration/delivery/deployment)
03
Ciągła integracja
04
Fail safe vs safe-to-fail
05
Load testing / perfomance testing
06
Monitoring jako ewolucja testów
07
Główne problemy wydajnościowe
06
INFRASTRUKTURA
rozwiń
Tydzień 17
Infra I
rozwiń
01
Co to jest infrastruktura
02
Infrastructure as code
03
Centralne logowanie
04
Zarządzanie konfiguracją
Tydzień 18
Infra II
rozwiń
01
Cloud
02
Konteneryzacja
03
Kubernetes
04
Service Mesh
07
REFACTORING
rozwiń
Tydzień 19
Refactoring z “Big Ball Of Mud”
zwiń
01
Refactoring do modularnego monolitu
02
Refactor modularnego monolitu do mikroserwisów
03
Typowe pułapki przy rozbijaniu monolitu