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 |
