DOMAIN-DRIVEN DESIGN DLA .NET CORE

89.10

Na stanie

SPIS TREŚCI

O autorze 11

O recenzentach 13

Przedmowa 15

Rozdział 1. Dlaczego projektowanie dziedzinowe? 19

  • Zrozumieć problem 20
    • Przestrzeń problemu i przestrzeń rozwiązania 20
    • Co poszło nie tak z wymaganiami? 22
  • Jak radzić sobie ze złożonością? 23
    • Rodzaje złożoności 23
    • Klasyfikowanie złożoności 26
    • Podejmowanie decyzji i błędy poznawcze 29
  • Wiedza 32
    • Wiedza dziedzinowa 32
    • Unikanie ignorancji 34
  • Podsumowanie 36
  • Dalsza lektura 36

Rozdział 2. Język i kontekst 37

  • Język wszechobecny 37
    • Język dziedzinowy 38
    • Wyraźne określanie rzeczy dorozumianych 41
  • Język i kontekst 47
  • Podsumowanie 51

Rozdział 3. EventStorming 53

  • EventStorming 54
    • Język modelowania 55
    • Wizualizacja 57
  • Porady dotyczące organizowania warsztatów EventStorming 58
    • Kogo zaprosić? 58
    • Przygotowanie przestrzeni 59
    • Warsztaty 61
  • Nasz pierwszy model 68
  • Podsumowanie 73
  • Dalsza lektura 74

Rozdział 4. Projektowanie modelu 75

  • Model dziedziny 75
    • Co reprezentuje model? 76
    • Anemiczny model dziedziny 77
    • Co należy uwzględnić w modelu dziedziny? 78
  • EventStorming na poziomie projektu 82
    • Poszerzanie wiedzy 82
    • Przygotowanie do warsztatów 83
    • Notacja rozszerzona 83
    • Modelowanie dziedziny referencyjnej 88
  • Podsumowanie 91
  • Dalsza lektura 92

Rozdział 5. Implementacja modelu 93

  • Wymagania techniczne 93
  • Rozpoczęcie implementacji 94
    • Tworzenie projektów 94
    • Framework 95
  • Przełożenie modelu na kod 96
    • Encje 97
    • Dodawanie zachowania 100
  • Zapewnianie poprawności 101
    • Ograniczenia dla wartości wejściowych 102
    • Obiekty wartości 103
  • Zdarzenia dziedzinowe w kodzie 127
    • Zdarzenia dziedzinowe jako obiekty 128
    • Generowanie zdarzeń 131
    • Zdarzenia zmieniają stan 134
  • Podsumowanie 139

Rozdział 6. Działanie za pomocą poleceń 141

  • Wymagania techniczne 141
  • Otoczenie modelu dziedziny 142
    • Udostępnianie internetowego interfejsu API 142
    • Warstwa aplikacji 149
  • Obsługa poleceń 152
    • Wzorzec procedury obsługi poleceń 152
  • Usługa aplikacji 156
  • Podsumowanie 165

Rozdział 7. Granica spójności 167

  • Wymagania techniczne 167
  • Spójność modelu dziedziny 168
    • Granice transakcji 168
    • Wzorzec Agregat 173
  • Ochrona niezmienników 181
    • Analiza ograniczeń dla polecenia 182
    • Egzekwowanie reguł 189
    • Encje wewnątrz agregatu 192
  • Podsumowanie 201

Rozdział 8. Utrwalanie agregatów 203

  • Wymagania techniczne 203
  • Utrwalanie agregatów 204
    • Repozytorium i jednostki pracy 204
    • Implementacja dla RavenDB 206
    • Implementacja Entity Framework Core 221
  • Podsumowanie 232

Rozdział 9. CQRS – strona odczytu 233

  • Wymagania techniczne 234
  • Dodawanie profilów użytkowników 234
    • Zagadnienia dotyczące dziedziny profilu użytkownika 235
    • Strona aplikacji dla profilu użytkownika 242
  • Strona zapytań 250
    • CQRS i konflikt między odczytami a zapisami 250
    • Zapytania i modele odczytu 252
  • Implementowanie zapytań 254
    • API zapytań 254
    • Implementacja zapytań dla RavenDB 257
    • Implementacja zapytań dla frameworku encji 264
  • Podsumowanie 270

Rozdział 10. Event Sourcing 271

  • Wymagania techniczne 272
  • Dlaczego Event Sourcing 273
    • Problemy z utrwalaniem stanu 273
    • Czym jest Event Sourcing? 277
    • Event Sourcing wokół nas 278
  • Agregaty pozyskiwane ze zdarzeń 279
    • Strumienie zdarzeń 279
    • Magazyny zdarzeń 281
    • Utrwalanie oparte na zdarzeniach 283
  • Podsumowanie 299
  • Dalsza lektura 300

Rozdział 11. Rzutowania i kwerendy 303

  • Zdarzenia i zapytania 304
  • Budowanie modeli odczytu na podstawie zdarzeń 305
    • Rzutowania 306
    • Subskrypcje 308
  • Implementacja rzutowań 311
    • Subskrypcje nadganiające 311
  • Rzutowania międzyagregatowe 320
    • Rzutowanie zdarzeń z dwóch agregatów 321
  • Wzbogacanie modeli odczytu 331
    • Kwerendowanie w rzutowaniach 332
    • Konwertowanie zdarzeń 335
  • Magazyn trwały 340
    • Punkty kontrolne 340
    • Utrwalanie modeli odczytu 344
    • Zakończenie 349
  • Podsumowanie 353

Rozdział 12. Kontekst ograniczony 355

  • Pułapka pojedynczego modelu 356
    • Zaczynaj od rzeczy małych 356
    • Znowu złożoność 357
    • Wielka kula błota 359
  • Konstruowanie systemów 363
    • Granice językowe 364
    • Autonomia zespołu 369
  • Podsumowanie 373

Rozdział 13. Podział systemu 375

  • Kiedy, co i jak? 375
    • Kiedy dzielić? 376
    • Co dzielić? 378
    • Jak podzielić? 380
  • Różne spojrzenia na projektowanie systemów 382
    • Proces projektowania 383
    • Dzielenie encji 387
  • Budowa systemu modułowego 387
    • Moduły wewnątrz jednego rozwiązania 389
    • Struktura modułu 392
  • Budowanie systemu 403
    • Podłączanie modułów do aplikacji 404
    • Integracja 405
  • Interfejs użytkownika 412
    • Interfejs użytkownika ponad granicami 413
  • Mikrousługi 417
    • Kiedy nie stosować systemów rozproszonych 418
    • Jak stosować systemy rozproszone 419
  • Podsumowanie 422
  • Dalsza lektura 423
Autor

ISBN

978-83-283-7765-3

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „DOMAIN-DRIVEN DESIGN DLA .NET CORE”

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *