Podstawy architektury oprogramowania
• Czym jest architektura
• Kim jest architekt i jaką pełni rolę
• Zarządzanie ryzykiem
Parametry systemowe Czym są parametry systemowe
• Jak poprawnie definiować wymagania niefunkcjonalne
• Opis parametrów systemowych:
• Wygoda użytkownika, Bezpieczeństwo, Wydajność,
• Dostępność, Niezawodność, Elastyczność,
• Realizowalność, Testowalność, Serwisowalność, Zarządzalność
• Wymiary systemu
• Priorytety parametrów systemowych
Wzorce architektoniczne
• Wprowadzenie do wzorców
• Stable Dependency Principle
• Wzorce podziału odpowiedzialności: MVC a SPA, N-Tier i Layers
• Wzorce infrastruktury:
• Skalowanie poziome i pionowe, Modularyzacja
• Load Balancing, Redundancja ścieżek, Klastry, Chmury
• Wzorce EAI: Message Broker, SOA, ESB i mu podobne
• Microservices
• Przedstawienie wybranych szablonów wzorców
Microservices z bliska
• Jak ma się do SOA
• A jak do Monolitu
• Wady i zalety Microservices
• Usługi w chmurze: IaaS, CaaS, Paas, FaaS, SaaS
• Kiedy wybrać, kiedy nie, i jak zacząć
• Dane w Microservices i podejście BASE
• Wzorce pomocnicze: CQRS i Event Sourcing
Architektura warstwy klienta i prezentacji
• Przechowywanie sesji
• Podział klientów
• Technologie klienta grubego: biblioteki graficzne a RCP
• Wsparcie klienta cienkiego: dla MVC, SPA (Angular, Vue, React)
• Zaawansowane komunikacja z przeglądarką: AJAX, WebSocket
Architektura warstwy biznesowej
• Przetwarzanie rozproszone
• Komunikacja zdalna a lokalna
• Protokoły komunikacyjne:
• COBRA, SOAP, REST, GraphQL, Sockets, RMI, gRPC...
Architektura warstwy integracji i zasobów Technologie utrwalania danych:
• RDBMS, bazy hierarchiczne, NoSQL, BigData
• Komunikacja asynchroniczna
Przegląd architektury w UML
• Diagram komponentów (component diagram)
• Diagram wdrożenia (deployment diagram)