Domain-Driven Design w transformacji systemów. Skuteczna modernizacja legacy bez zbędnego ryzyka Poddębice

Przekształć legacy w przewagę konkurencyjną dzięki Domain-Driven Design Modernizacja systemów zastanych to jedno z największych wyzwań współczesnej inżynierii oprogramowania. W erze cyfrowej transformacji firmy borykają się z przestarzałymi monolitami, które hamują innowacje i generują coraz wyższe …

od 73,96 Najbliżej: 41 km

Liczba ofert: 1

Oferta sklepu

Opis

Przekształć legacy w przewagę konkurencyjną dzięki Domain-Driven Design Modernizacja systemów zastanych to jedno z największych wyzwań współczesnej inżynierii oprogramowania. W erze cyfrowej transformacji firmy borykają się z przestarzałymi monolitami, które hamują innowacje i generują coraz wyższe koszty utrzymania. Domain-Driven Design (DDD), podejście od lat uznawane za skuteczne w tworzeniu nowego oprogramowania, przechodzi drugą młodość jako metodyka transformacji systemów legacy. Książka wypełnia istotną lukę na rynku oferuje kompleksowe, praktyczne podejście do modernizacji opartej na zasadach DDD, łączące aspekty techniczne, biznesowe i organizacyjne. Autorzy prezentują metodę Domain-Driven Transformation (DDT) na poziomie strategicznym i organizacyjnym. Prowadzą czytelnika przez cztery kluczowe kroki: ponowne odkrywanie dziedziny biznesowej, modelowanie architektury docelowej, dopasowanie architektury rzeczywistej do docelowej, a także określanie priorytetów i realizację działań transformacyjnych. Szczególną wartość stanowi indeks dojrzałości modularności (MMI), który pozwala ocenić stan systemu i wybrać odpowiednią ścieżkę transformacji. Książka pokazuje, jak unikać pułapek wielkiego przepisania, stosować refaktoryzacje dziedzinowe i reorganizować zespoły według metodologii team topologies. Najważniejsze zagadnienia: Ocena kondycji systemu i wybór właściwej ścieżki transformacji Techniki ponownego odkrywania dziedziny Katalog refaktoryzacji dziedzinowych Reorganizacja zespołów z horyzontalnej (warstwowej) na wertykalną (międzyfunkcyjną) Praktyczne studia przypadków z branży kinowej, bankowej, leasingowej i portowej Zastosowanie AI do wsparcia procesu transformacji i refaktoryzacji Jeśli rozpoczynasz projekt transformacji, polecam przeczytać tę książkę! Michael Feathers, autor Working Effectively with Legacy Code To najlepsza książka o DDD dostępna na rynku Sergio Morazan, OBI Group Holding Wypełnia lukę w literaturze poświęconej projektowaniu dziedzinowemu, koncentrując się na praktycznym zastosowaniu zasad DDD w transformacji systemów zastanych Gien Verschatse, współautor Collaborative Software Design Spis treści: Słowo wstępne Przedmowa 1. Domain-Driven Transformation w pigułce Przykład: system zastany w porcie kontenerowym Ponowne odkrywanie dziedziny Określanie docelowej architektury Porównanie architektury rzeczywistej z docelową Określanie priorytetów i realizowanie transformacji Co się właśnie stało? Metoda Ścieżki przez DDT Podsumowanie Część I. Podstawy 2. Jak zapanować nad złożonością Źródła złożoności - przestrzeń problemu i przestrzeń rozwiązań Terminal kontenerowy - złożoność w przestrzeni problemu i rozwiązania Rodzaje złożoności - zasadnicza a przypadkowa Źródła złożoności przypadkowej Obszary decyzyjne w architekturze oprogramowania Radzenie sobie ze złożonością zasadniczą i przypadkową Złożoność w systemach zastanych Metody podstawowe Co dalej? 3. Domain-Driven Design Koncepcje DDD w walce ze złożonością DDD a dziedzina biznesowa Język wszechobecny Projektowanie strategiczne po stronie biznesowej Kategoryzowanie poddziedzin - co jest dziedziną główną? DDD a rozwiązanie programowe Projekt strategiczny w oprogramowaniu Mapowanie kontekstów Kontekst bańkowy Model dziedzinowy Architektura warstwowa w DDD Projektowanie taktyczne Zdarzenia dziedzinowe Podsumowanie 4. Modelowanie kooperacyjne Narzędzia do modelowania i monopolizacja modelu Metody modelowania współpracy w transformacji Łączenie właściwych osób Podstawowe koncepcje modelowania kooperacyjnego Modelowanie kooperacyjne i DDD Domain Storytelling - opowiadanie historii dziedzinowych Jeden obraz - jedna historia Rysowanie granic Czynniki zakresu w historiach dziedzinowych Znajdowanie modelu dziedzinowego Perspektywy EventStorming Eksploracja w formacie Big Picture Eksploracja chaotyczna Egzekwowanie osi czasu Ludzie i systemy Przejście krok po kroku Działania dodające wartość Rysowanie granic Kodowanie kolorami Więcej szczegółów - Software Design EventStorming Znajdowanie modelu dziedzinowego Inne formaty i perspektywy Scenario Casting Jak działa Scenario Casting? Podstawowa idea Przebieg warsztatu - od eksploracji do wdrożenia Studium przypadku - Green Urban Supplier Krok 1. Burza mózgów Krok 2. Skupienie Krok 3. Składanie Co dalej w podejściu scenariuszowym? Druga runda Scenario Castingu Perspektywy Którą metodę wybrać? Zdalne modelowanie kooperacyjne Modelowanie kooperacyjne a AI Inne metody modelowania kooperacyjnego Podsumowanie 5. Koncepcje architektury oprogramowania Dokumentowanie architektury z wykorzystaniem modelu C4 Poziom 1. Kontekst Poziom 2. Kontenery Poziom 3. Komponenty Poziom 4. Kod Modularność Spójność i sprzężenie Spójność i sprzężenie w DDD Spójność i sprzężenie w dziedzinie Wielka bryła błota Na poziomie klasy Na poziomie architektury Skąd bierze się wielka bryła błota? Sprzężenie a wielokrotne używanie kodu Style architektoniczne systemów zastanych Monolit Mikrousługi Od monolitu do mikrousług Stara dobra architektura warstwowa Architektury wewnętrzno-zewnętrzne: heksagonalna (czyli porty i adaptery), cebulowa, czysta i inne Połączenie różnych stylów - architektura jawna Architektury wewnętrzno-zewnętrzne a taktyczne DDD Hamburger architektury oprogramowania Architektury zorientowane na usługi Systemy samodzielne Od krajobrazów IT do SOA i z powrotem Indeks dojrzałości modularności - na jakim etapie jesteś? Modularność w MMI Hierarchiczność w MMI Spójność wzorców w MMI Obliczanie MMI Podsumowanie 6. Podejścia do transformacji Wymiana - wielki wybuch Wymiana - krok po kroku Przekształcanie Podsumowanie Część II. Transformacja techniczna, taktyczna i zespołowo-organizacyjna 7. Techniczna stabilizacja oprogramowania zastanego Aktualizacja zintegrowanego środowiska programistycznego Automatyzacja budowania i wdrażania Aktualizowanie zależności oprogramowania Aktualizacja bibliotek i platform Aktualizacja języka programowania Eliminowanie ostrzeżeń kompilatora i środowiska IDE Zwiększanie pokrycia testami przy naprawianiu błędów Zasada skauta Różne rodzaje testów Porządkowanie kodu na bieżąco Refaktoryzacja Eliminowanie zależności Poprawa wewnętrznej struktury kodu z użyciem miar Zwiększanie odporności na błędy Budowanie odporności na wartości null Poprawa użycia wyjątków Wprowadzenie do projektowania kontraktowego Podsumowanie Na jakim jesteś etapie? - łatwa wersja 8. Wzmacnianie kodu źródłowego wiedzą dziedzinową Oddzielanie kodu biznesowego od technicznego Zwiększanie spójności Wzbogacanie modeli wiedzą dziedzinową Używanie obiektów wartości Wprowadzanie projektowania kontraktowego Jawne określanie tożsamości encji Ograniczanie sprzężenia Eliminowanie cykli i zależności Wprowadzanie referencji tożsamościowych na granicach agregatów Ograniczanie dziedziczenia w biznesowym kodzie źródłowym Zasada podstawienia Liskov Dokumentowanie architektury w kodzie Czy AI ma wiedzę o mojej dziedzinie? Podsumowanie Na jakim jesteś etapie? - łatwa wersja 9. Usprawnianie organizacji pracy zespołu Oprogramowanie jako system socjotechniczny Architektura i organizacja horyzontalna Architektura i organizacja wertykalna Jak przeprowadzić reorganizację zespołu? Topologie zespołów Praca w stanie przepływu Typy topologii Tryby interakcji między zespołami Ewolucja zespołów w czasie Zespoły wspomagające modernizację architektury Podsumowanie Na jakim jesteś etapie? - łatwa wersja Część III. Strategiczna transformacja dziedzinowa 10. Krok 1. Ponowne odkrywanie dziedziny Schematyczny opis kroku 1. Wyzwanie: zbieranie odpowiednich ekspertów dziedzinowych Wyzwanie: kierowanie ekspertów dziedzinowych z powrotem do właściwej dziedziny Podkrok 1.1. Zrozumienie stanu obecnego Podkrok 1.2. Wyodrębnianie wiedzy dziedzinowej (oczyszczanie) Technika - eksperyment myślowy "proces na papierze" Technika - eksperyment myślowy "wirtualni aktorzy" Alternatywa: modelowanie na czysto od samego początku Destylowanie języka wszechobecnego Podkrok 1.3. Optymalizacja procesów biznesowych Podkrok 1.4. Znajdowanie poddziedzin w procesach biznesowych Wskaźniki granic poddziedzin Wyzwanie: unikanie dekompozycji według elementów roboczych Wyzwanie: znajdowanie odpowiedniego rozmiaru Cele doboru odpowiedniego rozmiaru Wskaźniki odpowiedniego rozmiaru Dyskutowanie o dekompozycji z AI Podsumowanie 11. Krok 2. Modelowanie architektury docelowej Schematyczny opis kroku 2. Podkrok 2.1. Tworzenie mapy kontekstowej Wyzwanie: konteksty wynikające z przestrzeni rozwiązań Podkrok 2.2. Klasyfikowanie poddziedzin Podkrok 2.3. Przypisywanie kontekstów ograniczonych do zespołów Wyzwanie: przydział zespołów to często kształtowanie zespołów Podkrok 2.4. Określanie relacji Składanie wszystkiego w całość Podsumowanie 12. Krok 3. Dopasowanie architektury rzeczywistej do docelowej Schematyczny opis kroku 3. Podkrok 3.1. Identyfikowanie rzeczywistej architektury Rzeczywista architektura a sztuczna inteligencja Podkrok 3.2. Porównywanie docelowej mapy kontekstowej z kodem źródłowym Wyzwanie: modele nieograniczone Dekompozycja od wewnątrz na zewnątrz Wyzwanie: nieograniczony model dziedzinowy Przyczyna problemu: błędne rozumienie wielokrotnego wykorzystywania kodu Wyzwanie: nieograniczony anemiczny model dziedzinowy Wyzwanie: nieograniczony model danych Wyzwanie: dekompozycja interfejsu użytkownika Monolityczny interfejs użytkownika Interfejs użytkownika w kontekście - mikrofrontendy Podkrok 3.3. Tworzenie listy refaktoryzacji i ustaleń Podsumowanie 13. Krok 4. Określanie priorytetów i realizacja działań transformacyjnych Schematyczny opis kroku 4. Podkrok 4.1. Wybór pierwszej refaktoryzacji strategicznej Wzorzec: zaczynanie od poddziedziny pomocniczej Wzorzec: przejście do prac nad dziedziną główną Podkrok 4.2. Dodawanie refaktoryzacji taktycznych do backlogu produktu (lub backlogu usprawnień) Podkrok 4.3. Planowanie wykonalnych refaktoryzacji w backlogu sprintu Przerywanie refaktoryzacji tylko w sytuacjach awaryjnych Szacowanie refaktoryzacji Domain-Driven Transformation z użyciem metodyki Kanban Podkrok 4.4. Wyodrębnianie kontekstu Wyzwanie: rozplątywanie logiki biznesowej w serwisach Wyzwanie: przenoszenie lokalnych danych, metod ustawiających i pobierających do kontekstu Tożsamość encji Wyzwanie: duplikowanie danych, metod ustawiających i pobierających do wielu kontekstów Wyzwanie: wprowadzanie zdarzeń dziedzinowych między usługami Wyzwanie: przenoszenie logiki dziedzinowej z usług do anemicznego modelu dziedziny Przenoszenie logiki z usług do anemicznych encji Wyzwanie: rozplątywanie modelu danych Wyzwanie: wybieranie ustaleń w odpowiednim momencie Wyzwanie: utrzymywanie motywacji Podsumowanie Część IV. Podsumowanie 14. Perspektywy - wzorce dziedzinowe i ich implementacja w kontekstach ograniczonych Wymiar 1. Przepływ pracy w dziedzinie Wzorzec dziedzinowy Potok Wzorzec dziedzinowy Tablica Wzorzec dziedzinowy Dialog Ewolucja dziedzin i wzorce ich rozwoju Wymiar 2. Model dziedzinowy w oprogramowaniu Centralny element dziedzinowy a zróżnicowane elementy dziedzinowe Formularzowy model dziedzinowy Wymiar 3. Kształt dziedziny Wiek i dojrzałość dziedziny Dziedzina obiektów materialnych a dziedzina w pełni cyfrowa Przestrzeń na transformację Podsumowanie 15. Podsumowanie metody Domain-Driven Transformation Dodatek A. Przegląd katalogu refaktoryzacji dziedzinowych Dodatek B. Refaktoryzacje strategiczne Dodatek C. Refaktoryzacje taktyczne wspierające refaktoryzacje strategiczne Dodatek D. Refaktoryzacje socjotechniczne Dodatek E. Refaktoryzacje taktyczne wzmacniające wiedzę dziedzinową Bibliografia Skorowidz

Specyfikacja

Podstawowe informacje

Autor
  • Carola Lilienthal, Henning Schwentner
Wydawnictwo
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2026
Ilość stron
  • 400
Tematyka
  • Programowanie
ISBN
  • 9788328938816