Refaktoryzacja domenowa. Przewodnik DDD po przekszta - Helion

Autor: Alessandro Colla, Alberto Acerbis
Tytuł oryginału: Domain-Driven Refactoring: A hands-on DDD guide to transforming monoliths into modular systems and microservices
Tłumaczenie: Anna Czubska, Izabela
ISBN: 978-83-289-3327-9
stron: 292, Format: 165x235, okładka: mi
Data wydania: 2026-01-01
Księgarnia: Helion
Cena książki: 80,10 zł (poprzednio: 89,00 zł)
Oszczędzasz: 10% (-8,90 zł)
Tytuł oryginału: Domain-Driven Refactoring: A hands-on DDD guide to transforming monoliths into modular systems and microservices
Tłumaczenie: Anna Czubska, Izabela
ISBN: 978-83-289-3327-9
stron: 292, Format: 165x235, okładka: mi
Data wydania: 2026-01-01
Księgarnia: Helion
Cena książki: 80,10 zł (poprzednio: 89,00 zł)
Oszczędzasz: 10% (-8,90 zł)
Nakład wyczerpany
Wspó
Zobacz także:
- Superinteligencja. Scenariusze, strategie, zagro 66,19 zł, (13,90 zł -79%)
- Poradnik design thinking - czyli jak wykorzysta 49,64 zł, (13,90 zł -72%)
- Architektura ewolucyjna. Projektowanie oprogramowania i wsparcie zmian 57,74 zł, (17,90 zł -69%)
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
Spis treści
Refaktoryzacja domenowa. Przewodnik DDD po przekształcaniu architektury monolitycznej w systemy modularne i mikrousługi -- spis treści
O autorach
O recenzentach
Przedmowa
Wprowadzenie
Część 1. Dlaczego warto stosować DDD, by stawić czoła złożoności?
- Rozdział 1. Ewolucja projektowania zorientowanego na domenę
- Ewolucja podejść do tworzenia oprogramowania
- Dotychczasowa historia DDD
- Czym jest projektowanie zorientowane na domenę (DDD)?
- Jak DDD zmienia podejście do problemu?
- Podsumowanie
- Rozdział 2. Kwestia złożoności - przestrzeń problemów i rozwiązań
- Radzenie sobie ze złożonością
- Framework Cynefin
- Teoria pozostałości
- EventStorming
- Przestrzeń problemów i przestrzeń rozwiązań
- Celowe odkrywanie
- Pięć poziomów niewiedzy
- Przezwyciężanie luk w wiedzy
- Spacer deleuzjański
- Podejmowanie decyzji i błędy poznawcze
- Zrozumienie systemu 1 i systemu 2
- Znaczenie systemu 1 i systemu 2 w refaktoryzacji
- Typowe błędy poznawcze w refaktoryzacji
- Przykład praktyczny - refaktoryzacja odziedziczonego systemu
- Podsumowanie
- Radzenie sobie ze złożonością
- Rozdział 3. Wzorce strategiczne
- Zrozumiała definicja terminów rozwiązuje połowę problemu
- Czym jest kontekst ograniczony?
- Podział domeny na sensowne granice
- Mapowanie kontekstu
- Zarządzanie komunikacją między kontekstami ograniczonymi
- Znaczenie prawidłowej komunikacji
- Wzorce komunikacji
- Końcowa mapa kontekstu
- Podsumowanie
- Zrozumiała definicja terminów rozwiązuje połowę problemu
- Rozdział 4. Wzorce taktyczne
- Wymagania techniczne
- Zrozumienie wzorców taktycznych w DDD
- Encje
- Obiekty wartości
- Agregaty
- Repozytoria
- Fabryki
- Usługi i moduły
- Usługi domenowe
- Usługi aplikacji
- Kluczowe różnice między usługami domenowymi a usługami aplikacji
- Moduły
- Moduły w refaktoryzacji złożonych systemów
- Zdarzenia domenowe i integracyjne
- Znaczenie zdarzeń we współczesnych aplikacjach
- Zdarzenia domenowe
- Zdarzenia integracyjne
- Przypadki użycia w naszej aplikacji browarniczej
- Przepływ zdarzeń i przepływ informacji
- Podsumowanie
Część 2. Refaktoryzacja odziedziczonych systemów
- Rozdział 5. Wprowadzenie do zasad refaktoryzacji
- Teoria przed praktyką
- Wyzwania ścisłego powiązania usług sprzedaży i magazynowania
- Wdrażanie CI/CD i obserwowalności w procesie refaktoryzacji
- Filary bezpiecznych zmian
- Analiza struktury rozwiązania
- Zrozumienie testów i ich roli w refaktoryzacji
- Zastosowanie piramidy testów - cały przykład
- W kierunku przejrzystszego i łatwiejszego w utrzymaniu kodu
- Zasada pojedynczej odpowiedzialności
- Zasada otwarte-zamknięte
- Zasada odwrócenia zależności
- Wzorzec strategii
- Podsumowanie
- Teoria przed praktyką
- Rozdział 6. Wyjście z chaosu
- Identyfikacja kluczowych domen
- Zrozumienie otoczenia biznesowego
- Mapowanie obecnej bazy kodu
- Identyfikacja kontekstów ograniczonych
- Definiowanie przejrzystych interfejsów
- Budowa modularnego monolitu
- Mediator kontra Fasada
- Testowanie i stabilizacja
- Podsumowanie
- Rozdział 7. Integracja zdarzeń z CQRS
- Rozumienie roli komunikatów w monolicie modularnym
- Polecenia a zdarzenia
- Zdarzenia domenowe i integracyjne
- Rozdzielenie odpowiedzialności poleceń i zapytań
- Bezpośrednia synchronizacja baz danych
- Odpytywanie bazy danych
- Widoki zmaterializowane
- Współdzielona baza danych
- Wyzwalacze bazodanowe
- Rejestrowanie zmian stanu za pomocą zdarzeń
- Integracja wzorca Event Sourcing w architekturze CQRS
- Dodawanie zdarzeń do naszego systemu ERP
- Testowanie modularnego monolitu sterowanego zdarzeniami
- Testy specyfikacji
- Przykład 1. Tworzenie zamówienia sprzedaży
- Przykład 2. Aktualizacja dostępności
- Podsumowanie
- Rozumienie roli komunikatów w monolicie modularnym
- Rozdział 8. Refaktoryzacja bazy danych
- Usługi modułowe i potrzeba refaktoryzacji baz danych
- Zasady refaktoryzacji baz danych i wyznaczania granic domen
- Ewolucyjne projektowanie baz danych
- Wzorce refaktoryzacji baz danych
- Wyodrębnianie usług i zarządzanie spójnością danych
- Przejście na nową architekturę i zapewnienie wydajności
- Wzorce dostępu do danych rozproszonych
- Optymalizacja wydajności zapytań poprzez buforowanie i indeksowanie
- Testowanie i wdrażanie
- Strategie testowania
- Strategie wdrażania modularnych baz danych
- Podsumowanie
- Rozdział 9. Wzorce DDD do ciągłej integracji i ciągłej refaktoryzacji
- Integracja DDD z CI/CD
- Dlaczego CI/CD korzysta z DDD?
- Łączenie biznesu i technologii
- Tworzenie pętli informacji zwrotnych
- Wzorce i techniki skutecznego refaktoryzowania zgodnie z DDD
- Podział kontekstów ograniczonych
- Łączenie kontekstów ograniczonych
- Ciągła refaktoryzacja w kontekście DDD
- Automatyzacja i narzędzia
- SonarQube i GitLab - przykład
- Przykład GitHub Actions
- Podsumowanie
- Integracja DDD z CI/CD
Część 3. Przejście od monolitu do mikrousług
- Rozdział 10. Kiedy i dlaczego warto przejść na architekturę mikrousług?
- Odkrywanie architektury mikrousług
- Przejście z monolitu modularnego na mikrousługi
- Monolit kontra mikrousługi
- Uzasadnienie stosowania mikrousług
- Wyzwania i aspekty do rozważenia
- Błędne założenia w obliczeniach rozproszonych
- Korzyści i kompromisy związane z przejściem na mikrousługi
- Ocena gotowości do wdrożenia mikrousług
- Oznaki gotowości do mikrousług
- Rola monolitu modułowego jako fundamentu
- Dlaczego wzorzec mediatora nie wystarcza do pełnego rozdzielenia komponentów?
- Przejście na komunikację sterowaną zdarzeniami
- Przygotowanie do mikrousług
- Strategie przechodzenia na mikrousługi
- Podsumowanie
- Odkrywanie architektury mikrousług
- Rozdział 11. Obsługa zdarzeń i ich ewolucji
- CQRS, Event Sourcing i błędne pojęcie o strumieniowaniu zdarzeń
- Cykl życia zdarzeń - dlaczego rozwój ma znaczenie?
- Wdrażanie CQRS+ES - pokonywanie wyzwań technicznych i kulturowych
- Strategie wersjonowania zdarzeń
- Proste wersjonowanie zdarzeń
- Jak zarządzać ewolucją zdarzeń poza agregatem?
- Podsumowanie
- Rozdział 12. Zarządzanie złożonością - zaawansowane podejścia do procesów biznesowych
- Złożoność zawsze była obecna
- Protokół zatwierdzania dwufazowego
- Wzorzec Saga
- Choreografia a orkiestracja
- Choreografia
- Orkiestracja
- Wybór między choreografią a orkiestracją
- Zrozumienie różnicy między menedżerami procesów a sagami
- Dlaczego wzorce Saga i Menedżer procesu nie są zamienne?
- Jak protokół 2PC odnosi się do wzorców Saga i Menedżer procesu?
- Obsługa błędów i odzyskiwanie transakcji w sagach
- Transakcje kompensujące i strategie odzyskiwania
- Nieprzerwane wykonywanie - zapewnienie niezawodności w sagach
- Sagi oparte na zdarzeniach
- Podsumowanie
- Złożoność zawsze była obecna





