Facebook - konwersja

  • nowość

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

Wydawnictwo:
Tłumacz:
Format:
EPUB
Data wydania:
11 sierpnia 2026
129,00
12900 pkt
punktów Virtualo

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

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

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-289-3903-5
Rozmiar pliku: 26 MB

BESTSELLERY

Menu

Zamknij