Architektura systemów
Architektura systemów
Kod szkolenia: JAVA-ARCH
Szkolenie adresowane jest do osób, które chciałyby zapoznać się z praktycznymi aspektami tworzenia architektury. Dla wszystkich osób, które chcą otworzyć przed sobą nowe możliwości w zakresie realizacji zadań związanych z wyższymi kompetencjami architekta. Jak również dla osób pragnących osiągnąć wyższą świadomość konsekwencji płynących z dobieranych rozwiązań, w celu podejmowania lepszych decyzji.
Szkolenie jest odpowiednie zarówno dla programistów jak i projektantów, analityków, czy już aktualnie architektów chcących usystematyzować wiedzę i wymienić doświadczenia.
Celem szkolenia jest zdobycie wiedzy niezbędnej do tworzenia i weryfikacji architektury oraz umiejętności rozpatrywania potencjalnych rozwiązań z punktu widzenia parametrów systemowych. Jak również poznanie języka UML, w zakresie modelowania architektury i umiejętności tworzenia modeli architektonicznych.
Szkolenie kładzie duży nacisk na osiągnięcie wysokiej świadomości konsekwencji związanych z doborem rozwiązań, technologii, wzorców i innych decyzji architektonicznych. W oparciu o tą świadomość ćwiczymy i budujemy umiejętność podejmowania i weryfikacji decyzji architektonicznych poruszając się w realiach nieklarownych wizji systemu i dużej ilości założeń architektonicznych. Rozpatrując decyzje z punktu widzenia korzyści i wad, oraz omawiając sposoby weryfikacji zarówno decyzji jak i założeń.
Szerokim tematem szkolenia są również wzorce oraz modelowanie w UML, gdzie poznanie języka UML jest tylko środkiem, a jako cel wyznaczone jest nabycie umiejętności tworzenia modeli architektonicznych bazując na wymaganiach klienta.
5 dni, po 8 godzin. Łącznie 40 godzin(y) szkolenia.
Oczekiwane przygotowanie słuchaczy przed szkoleniem
Brak wymagań wstępnych.
Polecane szkolenia uzupełniające
Wszystko co związane z technologiami, wzorcami i UML może być traktowane jako szkolenie poprzedzające. Na architekturze dotykamy mnóstwa tematów na wysokim poziomie abstrakcji (konsekwencje dla parametrów systemowych – wady, zalety), zatem głębsza znajomość poszczególnych technologii może być pomocna, aczkolwiek nie jest wymagana.
- Podstawy Architektury
- Czym jest architektura
- Kim jest architekt i jaką pełni rolę
- Proces architektoniczny
- Dokumentacja architektoniczna
- 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
- Prototypowanie
- Po co prototypować
- Prototyp Proof of Concept
- Prototyp ewolucyjny
- Antywzorzec Lava Flow
- 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
- Optymalizacja komunikacji sieciowej
- 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
- Systemy „Legacy”
- Screen Scrapping
- Technologie scaffolding'owe
- Modelowanie architektury w UML
- Diagram komponentów
- Diagram wdrożenia
- Zaawansowane aspekty modelowania architektury w UML
- Instancyjny diagram wdrożenia
- Nispokopziomowy diagram wdrożenia
- Szablony architektoniczne
- Artefakty na diagramie wdrożenia
- Diagram pakietów
- Przejście z architektury do projektu
- Warstwy i komponenty a realizacja projektu
- Warstwy i komponenty a model projektowy
- Uwzględnienie ograniczeń architektury w projekcie
- Weryfikacja i ocena architektury
- Po co weryfikować?
- Zespół weryfikujący
- Techniki weryfikacji i oceny
- Proces weryfikacji
- Raport z weryfikcji