Tytuł: | Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Kod: | Arch-practical |
Kategoria: | Architektura systemów i aplikacji |
Forma: | 50% wykłady / 50% warsztaty |
Czas trwania: | 2-3 dni |
Odbiorcy: | DevOps, architekci, developerzy |
Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Od architekta oczekuje się, że na podstawie celu biznesowego i oczekiwanych funkcjonalności dostarczy implementowalny projekt systemu.
Od wysokopoziomowych diagramów, przez narzędzia i niskopoziomowe rozwiązania techniczne, tak aby klient dostał dokładnie to czego potrzebuje, otrzymał niezbędne charakterystyki jakościowe, jak na przykład niskie koszty utrzymania i by jednocześnie nie przepłacił za całość.
Tymczasem większość zespołów deweloperskich podchodzi do architektury systemów beztrosko. Nie wie na jakie cechy niefunkcjonalne optymalizować swoją architekturę, nie bierze pod uwagę ograniczeń ludzkich i organizacji, zbyt szeroko definiuje odpowiedzialności modułów i mikroserwisów, nie wie jaki styl architektoniczny rozwiązania przyjąć i dlaczego, lub wprowadza kosztowne podejścia i narzędzia, które nie zwracają nakładu pracy na nie poniesionego. Wiele zespołów nie potrafi wizualizować, weryfikować i analizować możliwych architektur.
Źle przygotowana architektura jest w stanie pogrzebać każdy projekt, niezależnie od poziomu operowania językiem, bibliotekami i frameworkami.
Na tym szkoleniu nauczysz się wszystkiego co niezbędne, by świadomie tworzyć rozwiązania w jednym z trzech najpopularniejszych stylów architektonicznych: modularnym monolicie, rozproszonych synchronicznych mikroserwisach, i mikroserwisach asynchronicznych, podejściu inaczej zwanym Event Driven Architecture.
W ramach szkolenia uczestnicy ćwiczą trzy style projektując nowy system. Omawiamy typowe błędy i analizujemy rozwiązania. Uczymy jak świadomie wybrać styl adekwatny do sytuacji, jak tworzyć części systemu z wysokim SLA, jak zapewnić wysoką wydajność, jak podzielić moduły i mikroserwisy. Pokazujemy najnowsze rozwiązania takie jak rozproszone event logi (Apache Kafka) i doradzamy jak ich możliwości wpływają na projekt. Analizujemy jak struktura organizacyjna i zakładane cechy niefunkcjonalne wpływają na decyzje projektowe. Wszystko to podajemy na przykładach z życia, z projektów w których braliśmy sami udział.
Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.
Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.
Artykuł jest pierwszym z serii tekstów mających na celu szczegółowe przedstawienie kompletnego zestawu technik modelowania oraz nakreślenie kompletnej architektury aplikacji wspierającej DDD.
Artykuł poświęcony zaawansowanym technikom modelowania taktycznego (Building Blocks) oraz technikom strategicznym
Artykuł poświęcony szczegółom implementacyjnym DDD.
Artykuł poświęcony technikom implementacji stosu Write w architekturze CqRS
Artykuł poświęcony kompleksowym technikom testowania automatycznego systemu stworzonego zgodnie z DDD
Artykuł poświęcony technikom implementacji stosu Read w architekturze CqRS
Artykuł poświęcony metodyce modelowania DDD Modeling Whirlpool z elementami BDD i Specification by Example
Artykuł poświęcony technikom odwracania kontroli w ujęciu: problem, idea, motywacja, zastosowanie, technika, kiedy nie stosować.
Artykuł przedstawiający metodę doboru zaślepek (Mock/Stub) dla testów jednostkowych na podstawie paradygmatu CQS.
W jaki sposób dokumentować architekturę systemu? Z jednej strony tak, aby zawrzeć wszystkie potrzebne informacje, z drugiej zaś, aby nie przeładować dokumentacji szczegółami, które czynią ją bezużyteczną.
Artykuł przedstawia meta-model, którym możemy posiłkować się w zmaganiach ze złożoną logiką biznesową. Meta-model będzie praktyczną realizacją drugiej zasady SOLID: Open/closed principle, która pozwala tworzyć rozwiązania otwarte na rozbudowę (rozbudowa to nie to samo co zmiana).
Stosując mapery relacyjno-obiektowe, zwykle nie zastanawiamy się nad problemami związanymi z niespójnością danych wynikającą ze stosowania Lazy Loadingu, granicą spójności obiektów podczas zapisu kaskadowego oraz pułapkami naiwnego blokowania optymistycznego.
Artykuł przedstawia koncepcję Wzorców analitycznych – adresujących rozwiązania na poziomie analizy systemowej. Ilustracją na przykładów jest kilka wybranych, w tym najbardziej popularnym z nich: Party – będą one również alternatywą dla typowych naiwnych książkowych modeli struktur organizacyjnych.
Wiele czasu i energii spędzamy na dyskusjach o wyższości jednego paradygmatu programowania nad innym, o wyższości jednego języka programowania nad innym. W niniejszym artykule chcę przekonać czytelników do tego, aby obok siebie, równorzędnie stosować zarówno paradygmat obiektowy, jak i funkcyjny oraz nie zapominać o proceduralnym.
Do czego może przydać mi się propagacja transakcji inna niż REQUIRED? Jak zachowa się wówczas EnityManager i cache pierwszego poziomu? Jak uniknąć zakleszczeń? Dlaczego moje transakcje tylko-do-odczytu nie są tylko do odczytu? Kiedy oddać sterowanie transakcjami klientom zamiast obsługiwać je aspektowo? Jakie anomalie w spójności danych mi zagrażają?
Prezentacja na konferencji Java Developers Day 2012
Czym jest architektura i jak ją dokumentować?
Podczas mojej prezentacji pokażę, że do architektury da się podejść inżyniersko – z kalkulatorem i ekierką. Czas beztroskich artystów i wież z kości słoniowej bezpowrotnie przeminął…
Przygotowanie komputerów: - git - IntelliJ IDEA (może być wersja community) - JDK 11 - kamera video i mikrofon (wystarczy laptop)