Architektura oprogramowania
Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
- Podstawy architektury oprogramowania
- Czym jest architektura i jakie są jej cele
- Kim jest architekt i jaką pełni rolę
- Proces i dokumentacja architektoniczna
- Zarządzanie ryzykiem
- Cechy jakościowe architektury
- Parametry systemowe - opis i problemy
- Poprawne definiowanie wymagań pozafunkcjonalnych
- Charakterystyka parametrów systemowych
- Availability, Reliability, Scalability
- Performance, Usability, Security
- Portablity, Reusability, Extensibility
- Flexibility, Testability, Realizability
- Manageability, Maintainability, Serviceability
- Wpływ wymiarów systemu na parametry
- Konieczność priorytetyzacji
- Wzorce architektoniczne
- Definicja też ważna, czyli jak uniknąć pułapek
- Klasyfikacja wzorców
- SDP - Stable Dependency Principle
- Wsparcie klienta cienkiego: MVC i SPA
- Podział odpowiedzialności
- Desktop, Client-Server
- 3-Tier, 4-Tier, Layers pattern
- Wzorce infrastruktury
- Skalowanie poziome i pionowe
- Modularyzacja, Load Balancing
- Redundancja Ścieżek, Cloud
- Klastry HA i Failover
- Wzorce Enterprise Application Integration
- MOM (message broker), SOA, ESB
- Microservices
- Wzmianka o szablonach: Microservices Patterns, POSA, PEAA, DDD, EIP
- Więcej o Microservices
- To SOA czy nie SOA?
- Monolit jako przeciwległa skrajność
- DevOps i CI/CD
- Są zalety, są problemy
- On Premise(s), IaaS, CaaS, PaaS, FaaS, SaaS
- Partycjonowanie w skalowaniu 3D
- Rady, przeciwwskazania i przeciwne zdania
- Jak migrować do microservices
- Polyglot Persistence
- CQRS i Event Sourcing
- ACID kontra BASE
- Kiedy migrować do microservices
- Prototypy
- Po co prototypować
- Proof of Concept a prototyp ewolucyjny
- Unikaj Lava Flow
- Architektura warstwy klienta i prezentacji
- Gdzie przechowywać sesję
- Rodzaje aplikacji klienckich
- Technologie klienta grubego: biblioteki, RCP
- Technologie klienta cienkiego
- Strony statyczne i dynamiczne
- Frameworki MVC
- Frameworki SPA: Angular, React, Vue
- Komunikacja zaawansowana: AJAX i WebSocket
- Architektura warstwy biznesowej
- Rozpraszać czy nie
- Wydajność komunikacji zdalnej a lokalnej
- Optymalizacja komunikacji zdalnej
- Protokoły komunikacyjne
- CORBA jako przykład długu technologicznego
- SOAP, REST i GraphQL
- Sockets czyli protokół własny
- RMI jako przykład rozwiązania homogenicznego
- gRPC i inne rozwiązania rynkowe
- Kryteria wyboru serwera aplikacyjnego
- Architektura warstwy integracji i zasobów
- Technologie utrwalania danych
- Bazy relacyjne
- Bazy hierarchiczne
- Różne modele danych w NoSQL
- Big data i Data Lake
- Komunikacja asynchroniczna
- Bezpośrednia, ESB, MOM
- Wzorce EIP i ich wsparcie
- API kontra protokół, czyli JMS a AMQP
- Przykładowe rozwiązania: RabbitMQ, Redis, Kafka
- Różnice między implementacjami message brokera
- Modele komunikacji
- Legacy w teorii i praktyce
- Ostatnia deska ratunku: Screen Scrapping
- Scaffolding, czyli jak to wszystko związać
- Dokumentowanie architektury w UML
- Opisowy diagram komponentów
- Komponenty proste i złożone
- Interfejs wymagany i dostarczany
- Złączenie i zależność
- Porty
- Diagram wdrożenia
- Węzły i ich stereotypy
- Communication path - opis, liczność, kierunkowość
- Zaawansowane modelowanie architektury w UML
- Dodatkowe wymiary diagramu wdrożenia
- Instancyjny
- Niskopoziomowy
- Szablon architektoniczny
- Wdrażanie artefaktów
- Diagram pakietów
- Pakiet
- Access a import
- Uwzględnienie architektury w projekcie
- Warstwy i komponenty a...
- Model projektowy w UML
- Fizyczna realizacja projektu
- Projekt a ograniczenia architektury
- Weryfikacja i ocena architektury
- Korzyści weryfikacji
- Zespół weryfikujący
- Techniki, proces i raport z weryfikacji
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O szkoleniu w skrócie
Na szkoleniu zdobędziesz wiedzę i umiejętności niezbędne do tworzenia czy weryfikacji architektury systemów informatycznych. Poznasz cechy jakościowe oraz sposoby ich osiągania na poziomie logicznym, fizycznym, konfiguracyjnym, technologicznym i integracyjnym. Zarówno z użyciem wzorców jak i poza nimi. Poprzez zarządzanie ryzykiem, rozpatrywanie wad i zalet dobieranych rozwiązań nauczysz się podejmowania decyzji oraz ich opisu na diagramach UML. Duży nacisk położony jest na zrozumienie zależności architektonicznych oraz świadomość konsekwencji, aby uczestnicy radzili sobie tak z obecnie panującymi trendami, jak i lata po ukończeniu kursu. Poruszając się w realiach nieklarownych wizji systemu, ukrytych wymagań pozafunkcjonalnych i dużej ilości założeń, uczestnicy ćwiczą i budują zdolności podejmowania decyzji architektonicznych.
Dla kogo?
Szkolenie adresowane jest do osób, które chcą otworzyć przed sobą możliwość realizacji zadań architekta czy usystematyzować wiedzę. Zapraszamy też osoby pragnące podejmować lepsze decyzje architektoniczne, dzięki wyższej świadomości konsekwencji. Jeśli interesują Cię praktyczne aspekty tworzenia architektury, chcesz zdobyć/usystematyzować wiedzę i wymienić doświadczenia - szkolenie jest dla Ciebie bez względu na zajmowane stanowisko (programista, projektant, analityk, tester, manager czy architekt). Dla analityków mamy też szkolenie dedykowane.
Wymagania wstępne
Brak wymagań wstępnych. Szkolenie jest prowadzone od podstaw.
Prowadzący szkolenie: Michał Podbielski
Programista Java od 2004 roku, doświadczony w wielkich międzynarodowych projektach. Architekt oprogramowania i konsultant w zakresie architektury oprogramowania, UML i BPMN rozwiązujący problemy klientów w złożonych i zróżnicowanych projektach. Przeprowadził w sumie ponad 390 szkoleń ze świetnymi wynikami w ankietach. Prowadzi szkolenia z języka Java, architektury oprogramowania, UML i BPMN.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia