Nowoczesne architektury aplikacji
Opis szkolenia
Wprowadzenie do nowoczesnych architektur oprogramowania to dwa dni z odkrywaniem różnych podejść do architektury. Dowiesz się, jakie masz możliwości radzenia sobie ze złożonością aplikacji, które wychodzą poza tradycyjne podejście warstwowe czy wzorzec MVC. Szkolenie ma na celu zaktualizowanie wiedzy o zdobywających popularność podejściach, nie dostarcza pełnej wiedzy o wymienionych architekturach.
Kluczowymi punktami szkolenia jest poznanie głównych założeń i wzorców architektur:
- Domain-Driven Design
- Micro Services
- Ports & Adapters
- Clean And Onion Architecture
- Reactive Architecture
- Serverless
Podstawowy program
Moduł. 1
Wprowadzenie do pojęcia architektura oprogramowania
Moduł. 2
Domain-Driven Design
Moduł. 4
Ports & Adapters
Moduł. 5
Clean and Onion Architecture
Moduł. 6
Reactive Architecture
Moduł. 7
Serverless Architecture
Szczegółowy program
Moduł. 1
Wprowadzenie do pojęcia architektura oprogramowania
- Czy jest architektura aplikacji, oprogramowania i korporacyjna?
- Czym różni się architektura od projektu (ang. design)
- Jakie można wyróżnić kluczowe elementy architektury aplikacyjnej
- Różne podejścia do strukturyzowania architektury
Moduł. 2
Domain-Driven Design
- Ubiquitous language – baza komunikacji między programistami i ekspertami dziedzinowymi
- Bloki budujące w DDD i ich odpowiedzialności
- Strategiczny rozwój systemu (ang. strategic design)
- Event sourcing oraz CQRS
Moduł. 3
Micro Services
- Monolityczne aplikacje i Micro Services
- Architektura wokół funkcjonalności biznesowych
- Wzorce stosowane w Microservices
- Decentralizacja zarządzania
- Decentralizacja danych
- Podział na usługi
Moduł. 4
Ports & Adapters
- Czym są porty?
- Porty pierwszorzędne i drugorzędne
- Adaptery i interfejsy między heksagonem a resztą świata
- Fabryki adapterów
- Dependency Injection oraz zdarzenia w kontekście Ports & Adapters
- Projektowanie systemu z użyciem Ports & Adapters
Moduł. 5
Clean and Onion Architecture
- Główne założenia
- Clean architecture a użycie frameworków
- Testowalność
- Poziomy niezależności architektury
- Elementy architektury
- Entities
- Use Cases
- Adaptery
- Controllers, Presenters, Gateways
- Włączanie elementów infrasturktury
- Zbliżona alternatywa - Onion Architecture
Moduł. 6
Reactive Architecture
- Cechy systemów rozproszonych
- Rozwiązanie chmurowe
- Używanie komunikatów i aktorów
- Modelowanie aktorów
- Cykl życia aktorów
- Rola Event Sourcingu i CQRS
- Monitoring
Moduł. 7
Serverless Architecture
- Funkcje w chmurze
- Funkcje jako Web API
- Event-Driven Architecture
- AWS Lambda
- Wywołania z klienta
- Uwierzytelnianie
Moduł. 8
Podsumowanie
- Zestawienie przedstawionych architektur z klasycznymi podejściami
- Wady i zalety rozwiązań
- Dojrzałość podejść