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
2z
Zadanie - C4
03
Drivery architektoniczne - czym są i dlaczego trzeba je znać?
3z
Zadanie - Drivery architektoniczne
3z
Zadanie - ADR
04
Architektura sterowana liczbami
4z
Zadanie - Metryki architektoniczne
05
Zwinna architektura
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
04
Estymacja
05
Implementacje modelu domenowego
06
Agregaty
07
CQRS (Command Query Responsibility Segregation)
08
Długo działające procesy
09
Bonus - Design Level i Live coding demo
10
Zadanie - Design Level Event Storming
Tydzień 07
DDD "taktyczne"
rozwiń
01
Elementy konstrukcyjne
02
Implementacja Value Objects
03
Implementacja Encji
04
Łamanie reguł biznesowych
05
Implemetacja zdarzeń
06
Implementacja - Serwisy
07
Publikacja Zdarzeń
08
Transport Zdarzeń
09
Dobór wzorca
10
Zadanie - Implementacja elementów konstrukcyjnych
Tydzień 08
Modularyzacja
rozwiń
01
Wstęp do modularyzacji
02
Enkapsulacja
03
Coupling
04
Narzędzia do mierzenia couplingu
05
Kohezja
06
Single Responsibility Principle
07
Wybór modułów
08
GRASP
07
Testing Done Right
10
Zadanie - Kohezja
Tydzień 09
REST
rozwiń
01
Podstawy REST
02
Zasoby w REST
03
Domena w REST
04
Caching
05
HATEOAS
06
Wersjonowanie REST
07
Testowalność REST
08
Dokumentacja REST
09
CORS
10
Zadanie - przegląd API
03
PERSYSTENCJA
rozwiń
Tydzień 10
Persystencja
zwiń
01
Transakcje
02
Anomalie współbieżnego dostępu
03
Reaktywne źródła danych
04
ORM
05
CAP, BASE i Eventual Consistency
06
Rozproszony konsensus
07
Wybór bazy danych
Tydzień 11
Event Sourcing
rozwiń
01
Jakie problemy rozwiązuje event sourcing
02
Zapis i odczyt zdarzeń
03
Projekcje i modele odczytu
04
Wersjonowanie zdarzeń
05
GetEventStore vs Postgres vs MongoDB
06
Live coding
04
SYSTEMY ROZPROSZONE
rozwiń
Tydzień 12
Systemy rozproszone
rozwiń
01
Przyczyny rozproszenia systemu
02
Podział prac projektowych
03
Błędne założenia przy rozproszeniu systemu
Tydzień 13
Mikroserwisy
rozwiń
01
Mikroserwisy a systemy rozproszone
02
SLA, SLO, SLI
03
Dostępność
04
Temporal coupling
05
Wdrożenia bez niedostępności
06
Zadanie SLA/SLO/SLI
07
Zadanie temporal coupling
Tydzień 14
Komunikacja
rozwiń
01
“Design for failure”
02
Komunikacja synchroniczna a asynchroniczna
03
Komunikacja asynchroniczna Fire & Forget
04
Rozproszone sagi
05
API publiczne i prywatne
06
Circuit breaker
07
Service discovery
08
Client-Side Load Balancing
Tydzień 15
Jakość komunikacji
rozwiń
01
Jakość komunikacji
02
Testy E2E
03
Testy kontraktowe
04
Consumer driven contracts
05
Kontrakty w lokalnym developmencie
06
Distributed tracing
07
Live demo
Tydzień 16
Security
rozwiń
01
Wprowadzenie do bezpieczeństwa
02
Kerberos
03
SAML 2.0
04
OAuth 2.0 + OpenID Connect
05
JWT
06
Edge Service
07
Zarządzanie dostępem do komponentów systemu
08
Secure development policy
09
Case study zabezpieczenia aplikacji
05
CI/CD
rozwiń
Tydzień 17
Continuous Integration, Deployment & Delivery
zwiń
01
Deployment pipeliney
02
Continuous Delivery - ciągłe dostarczanie
03
Ciągła integracja i wdrażanie
04
Fail-safe vs safe-to-fail
05
Post-mortem
06
Testowanie wydajności
07
Monitoring
08
Główne problemy wydajnościowe
06
INFRASTRUKTURA
rozwiń
Tydzień 18
Infra I
rozwiń
01
Infrastruktura
02
Infrastruktura jako kod
03
Zarządzanie konfiguracją aplikacji
04
Centralne logowanie
05
Mechanizmy poprawy wydajności i zabezpieczenia DDoS
06
Projektowanie infrastruktury z nastawieniem na HA
07
Wdrażanie procesów Disaster Recovery
Tydzień 19
Infra II
rozwiń
01
Chmura
02
Kontenery
03
Kubernetes
04
Service Mesh
05
Rozliczalność projektów
06
Serverless
07
REFACTORING
rozwiń
Tydzień 20
Refactoring z “Big Ball Of Mud”
zwiń
01
Wstęp
02
Refactoring do modularnego monolitu
03
Szczegóły ekstrakcji modułów
04
Refactor modularnego monolitu do mikroserwisów