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

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.

Podtytuł Koncepcja Domain-Driven Design. Dostosowywanie architektury aplikacji do strategii biznesowej
Tytuł oryginalny Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy
Autor Vlad Khononov
Tłumaczenie Radosław Meryk
Rok wydania 2022
Oprawa Miękka
Format 165x235
Stron 296
Wydawnictwo Helion
79.00
szt. Do przechowalni
Wysyłka w ciągu 24 godziny
ISBN 978-83-283-9262-5

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!

Spis treści książki
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

Vladik (Vlad) Khononov jest inżynierem oprogramowania od ponad 15 lat. Specjalizuje się w projektowaniu dziedzinowym dla firm z wielu branż i chętnie dzieli się swoim bogatym doświadczeniem. Często występuje podczas branżowych konferencji, takich jak O'Reilly Software Architecture, DDD Europe i NDC, a także działa na rzecz grup Domain-Driven Design Israel i Tel Aviv Software Architecture. Mieszka w północnym Izraelu z żoną i (prawie) rozsądną liczbą kotów.

Nie ma jeszcze komentarzy ani ocen dla tego produktu.

Polub nas na Facebooku