Czas trwania
2-3 dni
Abstrakt
Szkolenie ma za zadanie zapoznać uczestników z tematyką wzorców architektonicznych. Podczas szkolenia zostanie przedstawione wiele technik i zdobywczy nowoczesnej inżynierii oprogramowania. Tematy będą omówione z wykorzystaniem praktycznych przykładów. Szkolenie jest organizowane w formie warsztatów oraz dyskusji, podczas których będziemy rozwiązywać konkretne problemy oraz projektować systemy biznesowe.
Zagadnienia
Cechy architektury |
Zarządzalność |
Testowalność |
Skalowalność |
Bezpieczeństwo |
Wydajność |
Rozszerzalność |
Modułowość |
Koszt |
Techniki zmniejszania zależności i nie tylko |
Krótko o wzorcach GoF |
GRASP, SOLID |
Interface |
State vs stateless |
Push vs pull |
Sync vs async |
Wzorce architektur |
Architektura warstwowa |
Warstwa, a tier |
Warstwa biznesowa, a warstwa aplikacyjna |
IoC |
Dependency Injection |
Events |
Aspect Oriented Programming |
Warstwa biznesowa |
Bogata domena vs CRUD |
Transaction script |
Table Module |
Active Record |
Domain Model |
Wzorce warstwy danych |
TDG, RDG, ActiveRecord, Data Mapper |
Repozytorium |
ORM |
Unit of Work, Identity Map, LazyLoading |
Query object, Specification |
Zródło danych |
Klucze encji |
Mapowanie dziedziczenia w SQL |
Wzorce prezentacji |
MVP |
MVC |
MVVM |
EventAggregator |
Navigator |
Data binding |
Command |
RPC vs Messaging |
Jakie ograniczenia nakładają wywołania RPC? |
Sync vs async |
Komunikacja asynchroniczna |
Message bus vs message broker |
Autonomiczne komponenty |
Długotrwałe procesy biznesowe – workflow |
SLA |
Wstęp do DDD |
Czym jest DDD? |
Architektura aplikacji DDD |
Building blocki DDD (Entity, Aggregate, Value Object, Factory, Repository, Domain Service) |
Warstwa aplikacyjna |
Bounded Context |
Integracja Bounded Context (Domain Event, Saga) |
CqRS (CQS, Read and Write stack, Projectors, EventSourcing) |
Wstęp do NoSQL |
Bazy obiektowe, dokumentowe i grafowe |
MapReduce |
Inne aspekty |
Search – wyszukiwanie w systemach |
SaaS – Software as a service |
Domain Specific Language – języki domenowe |
Generowanie kodu |
Obsługa konkurencyjności |