E-book details

Koncepcja Domain-Driven Design. Dostosowywanie architektury aplikacji do strategii biznesowej

Koncepcja Domain-Driven Design. Dostosowywanie architektury aplikacji do strategii biznesowej

Vlad Khononov

Ebook

Domain-driven design, czyli projektowanie dziedzinowe, w skrócie DDD, jest zbiorem praktyk tworzenia architektury oprogramowania z uwzględnieniem dziedziny biznesu i jej problemów. W ten sposób logika biznesowa staje się sercem aplikacji. Wielu architektów jednak nie radzi sobie ze złożonością tworzonego oprogramowania. Nauczenie się zasad i wzorców DDD, przyswojenie technik dekompozycji dużego systemu, modelowania i projektowania integracji komponentów jest sposobem na zbudowanie systemu w pełni zgodnego z potrzebami i celami biznesowymi.

Ta książka zawiera opis podstawowych wzorców, zasad i praktyk przydatnych podczas analizy dziedzin biznesowych, ułatwiających zrozumienie ich strategii i dostosowanie architektury do potrzeb biznesu, aby umożliwić zbudowanie solidnej implementacji logiki biznesowej. Omówiono tu narzędzia i techniki podejmowania decyzji projektowych, a także istotniejsze wzorce projektowe. Dużo uwagi poświęcono kodowi i różnym sposobom implementacji logiki biznesowej systemu. Opisano również techniki i strategie stosowania DDD w rzeczywistych projektach. Ciekawym elementem jest zaprezentowanie związków projektowania dziedzinowego z innymi ważnymi metodologiami i wzorcami.\

W książce między innymi:

  • analiza dziedziny biznesowej firmy w kontekście architektury systemu
  • strategiczne i taktyczne narzędzia DDD
  • budowa wspólnego rozumienia dziedzin biznesowych
  • dekompozycja systemu na konteksty ograniczone
  • koordynacja pracy wielu zespołów
  • stopniowe wdrażanie technik DDD do projektów typu brownfield

DDD: praktyczny sposób na rozwiązanie problemów biznesowych!

Słowo wstępne

Przedmowa

Wprowadzenie

Cześć I. Projektowanie strategiczne

Rozdział 1. Analiza Dziedzin Biznesowych

  • Co to jest Dziedzina Biznesowa?
  • Co to jest Poddziedzina?
    • Typy Poddziedzin
    • Porównywanie Poddziedzin
    • Identyfikowanie granic Poddziedzin
  • Przykłady analizy Dziedziny
    • Gigmaster
    • BusVNext
  • Kim są eksperci dziedzinowi?
  • Podsumowanie
  • Ćwiczenia

Rozdział 2. Odkrywanie wiedzy dziedzinowej

  • Problemy biznesowe
  • Odkrywanie wiedzy
  • Komunikacja
  • Co to jest Język Wszechobecny?
  • Język biznesu
    • Scenariusze
    • Spójność
  • Model Dziedziny Biznesowej
    • Co to jest "model"?
    • Skuteczne modelowanie
    • Modelowanie Dziedziny Biznesowej
    • Ciągły wysiłek
    • Narzędzia
    • Wyzwania
  • Podsumowanie
  • Ćwiczenia

Rozdział 3. Zarządzanie złożonością Dziedziny

  • Niespójne modele
  • Co to jest Kontekst Ograniczony?
    • Granice modelu
    • Język Wszechobecny dokładniej
    • Zakres Kontekstu Ograniczonego
  • Konteksty Ograniczone a Poddziedziny
    • Poddziedziny
    • Konteksty Ograniczone
    • Wzajemne oddziaływanie między Poddziedzinami a Kontekstami Ograniczonymi
  • Granice
    • Granice fizyczne
    • Granice własności
  • Konteksty Ograniczone w prawdziwym życiu
    • Dziedziny semantyczne
    • Nauka
    • Kupowanie lodówki
  • Podsumowanie
  • Ćwiczenia

Rozdział 4. Integracja Kontekstów Ograniczonych

  • Kooperacja
    • Partnerstwo
    • Wspólne Jądro
  • Klient-Dostawca
    • Konformista
    • Warstwa Antykorupcyjna
    • Usługa Otwartego Hosta
  • Różne Drogi
    • Problemy z komunikacją
    • Poddziedziny Ogólne
    • Różnice w modelach
  • Mapa Kontekstu
    • Utrzymanie
    • Ograniczenia
  • Podsumowanie
  • Ćwiczenia

Część II. Projektowanie taktyczne

Rozdział 5. Implementacja prostej Logiki Biznesowej

  • Skrypt Transakcji
    • Implementacja
    • To nie jest takie proste!
    • Kiedy używać Skryptu Transakcji
  • Aktywny Rekord
    • Implementacja
    • Kiedy używać wzorca Aktywny Rekord
  • Bądź pragmatyczny
  • Podsumowanie
  • Ćwiczenia

Rozdział 6. Rozwiązywanie problemów ze złożoną Logiką Biznesową

  • Historia
  • Model Dziedziny
    • Implementacja
    • Bloki konstrukcyjne
    • Zarządzanie złożonością
  • Podsumowanie
  • Ćwiczenia

Rozdział 7. Modelowanie wymiaru czasu

  • Event Sourcing
    • Wyszukiwanie
    • Analiza
    • Źródło prawdy
    • Magazyn zdarzeń
  • Model Dziedziny ze źródłem w postaci zdarzeń
    • Zalety
    • Wady
  • Często zadawane pytania
    • Wydajność
    • Usuwanie danych
    • Dlaczego nie mogę po prostu...?
  • Podsumowanie
  • Ćwiczenia

Rozdział 8. Wzorce architektoniczne

  • Logika Biznesowa a wzorce architektoniczne
  • Architektura Warstwowa
    • Warstwa Prezentacji
    • Warstwa Logiki Biznesowej
    • Warstwa Dostępu Do Danych
    • Komunikacja między warstwami
    • Odmiany
    • Kiedy używać Architektury Warstwowej?
  • Porty i Adaptery
    • Terminologia
    • Zasada inwersji zależności
    • Integracja komponentów infrastrukturalnych
    • Odmiany
    • Kiedy używać wzorca Porty i Adaptery?
  • Segregacja Odpowiedzialności za Polecenia i Zapytania
    • Modelowanie poliglotyczne
    • Implementacja
    • Projekcje Modeli Odczytu
    • Wyzwania
    • Segregacja modeli
    • Kiedy używać CQRS?
  • Zakres
  • Podsumowanie
  • Ćwiczenia

Rozdział 9. Wzorce komunikacji

  • Tłumaczenie modelu
    • Bezstanowe tłumaczenie modelu
    • Stanowe tłumaczenie modelu
  • Integracja Agregatów
    • Skrzynka Nadawcza
    • Saga
    • Menedżer Procesu
  • Podsumowanie
  • Ćwiczenia

Część III. Zastosowanie DDD w praktyce

Rozdział 10. Heurystyki projektowe

  • Heurystyka
  • Konteksty Ograniczone
  • Wzorce implementacji Logiki Biznesowej
  • Wzorce architektoniczne
  • Strategia testowania
    • Piramida Testowania
    • Romb Testowania
    • Odwrócona Piramida Testowania
  • Drzewo decyzyjne projektu taktycznego
  • Podsumowanie
  • Ćwiczenia

Rozdział 11. Zmieniające się decyzje projektowe

  • Zmiany w Dziedzinach
    • Podstawowa na Ogólną
    • Ogólna na Podstawową
    • Pomocnicza na Ogólną
    • Pomocnicza na Podstawową
    • Podstawowa na Pomocniczą
    • Ogólna na Pomocniczą
  • Problemy projektu strategicznego
  • Problemy projektu taktycznego
    • Skrypt Transakcji na Aktywny Rekord
    • Aktywny Rekord na Model Dziedziny
    • Model Dziedziny na Model Dziedziny ze źródłem w postaci zdarzeń
    • Generowanie przeszłych przejść
    • Modelowanie zdarzeń migracji
  • Zmiany organizacyjne
    • Partnerstwo na Klient-Dostawca
    • Klient-Dostawca na Różne Drogi
  • Wiedza dziedzinowa
  • Rozwój
    • Poddziedziny
    • Konteksty Ograniczone
    • Agregaty
  • Podsumowanie
  • Ćwiczenia

Rozdział 12. EventStorming

  • Co to jest EventStorming?
  • Kto powinien wziąć udział w warsztatach EventStorming?
  • Czego potrzebujesz do zorganizowania sesji EventStorming?
  • Przebieg warsztatów EventStorming
    • Krok 1. Nieustrukturyzowana eksploracja
    • Krok 2. Osie czasu
    • Krok 3. Możliwe problemy
    • Krok 4. Kluczowe zdarzenia
    • Krok 5. Polecenia
    • Krok 6. Reguły
    • Krok 7. Modele Odczytu
    • Krok 8. Systemy zewnętrzne
    • Krok 9. Agregaty
    • Krok 10. Konteksty Ograniczone
  • Odmiany
  • Kiedy korzystać z warsztatów EventStorming?
  • Wskazówki dotyczące facylitacji
    • Obserwuj dynamikę
    • Zdalne sesje EventStorming
  • Podsumowanie
  • Ćwiczenia

Rozdział 13. Projekt oparty na Dziedzinie w praktyce

  • Analiza strategiczna
    • Opis Dziedziny Biznesowej
    • Poznaj aktualny projekt
  • Strategia modernizacji
    • Modernizacja strategiczna
    • Modernizacja taktyczna
    • Pielęgnuj Język Wszechobecny
  • Praktyczny projekt DDD
  • Promowanie projektu DDD
    • Ujawnij metodologię DDD
  • Podsumowanie
  • Ćwiczenia

Część IV. Związki z innymi metodologiami i wzorcami

Rozdział 14. Mikrousługi

  • Co to jest usługa?
  • Co to jest "mikrousługa"?
    • Metoda jako usługa: czy to doskonałe mikrousługi?
    • Cel projektu
    • Złożoność systemu
    • Mikrousługi jako usługi głębokie
    • Mikrousługi jako moduły głębokie
  • Projektowanie DDD a granice mikrousług
    • Konteksty Ograniczone
    • Agregaty
    • Poddziedziny
  • Kompresowanie publicznych interfejsów mikrousług
    • Usługa Otwartego Hosta
    • Warstwa Antykorupcyjna
  • Podsumowanie
  • Ćwiczenia

Rozdział 15. Architektura sterowana zdarzeniami

  • Architektura sterowana zdarzeniami
  • Zdarzenia
    • Zdarzenia, Polecenia i Komunikaty
    • Struktura
    • Rodzaje zdarzeń
  • Projektowanie integracji sterowanej zdarzeniami
    • Rozproszona Wielka Kula Błota
    • Sprzężenie czasowe
    • Sprzężenie funkcjonalne
    • Sprzężenie implementacji
    • Refaktoryzacja kodu integracji sterowanej zdarzeniami
    • Heurystyka projektu sterowanego zdarzeniami
  • Podsumowanie
  • Ćwiczenia

Rozdział 16. Siatka danych

  • Analityczny model danych a transakcyjny model danych
    • Tabela faktów
    • Tabela wymiarów
    • Modele analityczne
  • Platformy zarządzania danymi analitycznymi
    • Hurtownia danych
    • Jezioro danych
    • Wyzwania związane z architekturami hurtowni danych i jeziora danych
  • Siatka danych
    • Dekompozycja danych wokół Dziedzin
    • Dane jako produkt
    • Zadbaj o autonomię
    • Zbuduj ekosystem
    • Łączenie siatki danych z projektowaniem DDD
  • Podsumowanie
  • Ćwiczenia

Posłowie

Dodatek A. Zastosowanie DDD: studium przypadku

Dodatek B. Odpowiedzi na pytania

Bibliografia

  • Title: Koncepcja Domain-Driven Design. Dostosowywanie architektury aplikacji do strategii biznesowej
  • Author: Vlad Khononov
  • Original title: Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy
  • Translation: Radosław Meryk
  • ISBN: 978-83-283-9263-2, 9788328392632
  • Date of issue: 2022-08-30
  • Format: Ebook
  • Item ID: kododr
  • Publisher: Helion