Architektura aplikacji biznesowych
Opis
Szkolenie Architektura aplikacji biznesowych to trzy dni, w czasie których uczestnicy będą mieli okazję poznać i uporządkować kluczowe zasady architektoniczne związane z tworzeniem złożonych aplikacji. Będzie ono niezwykle użyteczne dla doświadczonych programistów jak i osób, które pełnią lub w najbliższym czasie będą pełnić rolę architekta. Szkolenie architektura oprogramowania obejmuje tematykę głównych podejść architektonicznych takich jak: Microkernel, Warstwy, Model dziedzinowy czy Shared Repository, przeglądem konkretnych wzorców przydatnych w różnych obszarach tworzonej architektury – prezentacji, dostępu do danych, asynchroniczność czy zarządzania zasobami. Jednak szkolenie z architektury IT dotyczy także elementom procesowym – czyli jak przypadki użycia wpływają na architekturę, prototypowaniu jako narzędziu eksplorującym zastosowanie konkretnych rozwiązań, pragmatycznym dokumentowaniu architektury z uwzględnieniem podejść zwinnych oraz procesowi rozwoju architektury w systemie, który już istnieje. Dodatkowo omówione będą zagadnienia skalowania związane z rozwojem złożonych aplikacji.
Szkolenie z architektury to intensywne trzy dni, które pomoże Ci bardziej świadomie podejmować decyzje architektoniczne.
Profil uczestnika
- Uczestnik zna wzorce projektowe na poziomie szkolenia WP.
- Uczestnik posiada co najmniej dwuletnie doświadczenie w programowaniu systemów informatycznych.
Podstawowy program
Moduł. 1
Strukturyzowanie kodu
Moduł. 2
Architektury warstwy prezentacji
Moduł. 3
Dostęp do danych
Moduł. 4
Asynchroniczność i współbieżny dostęp
Moduł. 5
Zarządzanie zasobami i wydajność
Moduł. 6
Wprowadzenie do Domain-Driven Design
Moduł. 7
Od wymagań do architektury
Moduł. 9
Dokumentowanie architektury
Moduł. 10
Proces rozwoju architektury
Moduł. 11
Standaryzowanie architektury
Moduł. 12
Skalowanie na dużą skalę
Szczegółowy program
Moduł. 1
Strukturyzowanie kodu
- Domain Model
- Domain Object
- Architektura warstwowa
- Architektura Mikrokrernel
- Architektura Shared Repository
- Architektura Blackboard
- Architektura Plug-In
- Domeny obiektowe i nie obiektowe
Moduł. 2
Architektury warstwy prezentacji
- Autonomous View
- Seperated Presentation
- Synchronizacja stanu
- Forms and Control
- Model-View-Controller
- Presentation Model, MVVM
- Model-View-Presenter, Passive View
Moduł. 3
Dostęp do danych
- Data Access Layer
- Table Data Gateway, Data Access Object
- Active Record
- Repository
- Object/Relational Mapping
- [opcja] JPA użyteczne wskazówki
- [opcja] Deklaratywna obsługa transakcji
Moduł. 4
Asynchroniczność i współbieżny dostęp
- Observer
- Mediator
- Broker
- Messaging
- Publisher-Subscriber
- Event, Event Log, Event Sourcing
- Message, Message Channel, Message Router, Message Translator
- Monitor Object
- Half-Sync/Half-Async
- Active Object, Future Result
Moduł. 5
Zarządzanie zasobami i wydajność
- Główne założenia
- Lookup
- Remote Proxy, Virtual Proxy
- Task Coordinator
- Resource Pool, Resource Cache
- Flyweight
- Transfer Object i jego odmiany
- Transfer Object Assembler
- Logika po stronie aplikacji czy bazy danych?
- Business Delegate
- Container
Moduł. 6
Wprowadzenie do Domain-Driven Design
- Co to jest dziedzina?
- Izolacja dziedziny
- Warstwy w DDD
- Bloki budujące: Entity, Value Object, Aggregate, Repository, Factory, Service, Policy, Specification, Event
- Bounded Context
- Continuous Integration, Shared Kernel, Customer/Supplier, Conformist, Anticorruption Layer, Seperate Ways, Open Host Service
Moduł. 7
Od wymagań do architektury
- Przygotowanie i prowadzenie sesji
- User stories i Use Cases
- Modelowanie dziedziny, relacji, usług i innych bloków budujących
- Od testów akceptacyjnych, przez testy jednostkowe do kodu – proces end-to-end
Moduł. 8
Prototypy
- Prototypy ekranów
- Prototypy aplikacji
- Spikes
Moduł. 9
Dokumentowanie architektury
- Nieformalne diagramy
- Widoki 4+1
- Widok procesu, widok logiczny, widok fizyczny, widok implementacji
- Diagram komponentów
- Diagram wdrożenia
- Diagram klas
- Konceptualny i implementacyjny model systemu
- Diagram sekwencji
- Elementy objaśniające i dokumentujące
- Kiedy i jak używać modeli i diagramów?
- Jak zdefiniować i wdrożyć zarządzanie dokumentacją związaną z architekturą?
Moduł. 10
Proces rozwoju architektury
- Główne problemy z rozwojem architektury
- Modele organizacyjne
- Architekt: Rola czy stanowisko
- Zarządzanie ewolucją architektury
- Projektowanie i wdrażanie procesu rozwoju architektury
- Podejścia iteracyjne
- Praktyki związane z rozwijaniem architektury
Moduł. 11
Standaryzowanie architektury
- Środowisko programistyczne
- Konwencje kodowania
- Przeglądy kodu
- Proces standaryzacji
Moduł. 12
Skalowanie na dużą skalę
- Skalowanie horyzontalne i wertykalne – 10 strategii skalowania
- NoSQL – bazy klucz-wartość, bazy dokumentowe, bazy grafowe, wide column
- MapReduce
- Command Query Responsibility Segregation