reklama - zainteresowany?

Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji - Helion

Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji
Autor: Alexey Zimarev
Tytuł oryginału: Hands-On Domain-Driven Design with .NET Core: Tackling complexity in the heart of software by putting DDD principles into practice
TÅ‚umaczenie: Lech Lachowski
ISBN: 978-83-283-7765-3
stron: 424, Format: 168x237, okładka: miękka
Data wydania: 2021-07-19
Księgarnia: Helion

Cena książki: 99,00 zł

Dodaj do koszyka Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji

Tagi: .NET - Programowanie | C# - Programowanie | Inne - Programowanie

Wdrożenie zasad projektowania dziedzinowego (DDD) jest szansÄ… na uzyskanie doskonaÅ‚ych wyników projektowania oprogramowania dla zÅ‚ożonych wymagaÅ„ biznesowych. Aby podejÅ›cie DDD ujawniÅ‚o swoje zalety, konieczne jest zrozumienie potrzeb użytkowników i zidentyfikowanie wÅ‚aÅ›ciwych problemów do rozwiÄ…zania. Dopiero potem można przystÄ…pić do budowania modeli. Zaangażowanie zainteresowanych stron biznesowych w ten proces nie zawsze jednak przebiega efektywnie. Konieczne jest zrozumienie natury modeli dziedzinowych opartych na zachowaniu oraz tego, jakÄ… rolÄ™ odgrywajÄ… one w budowie zwinnych i zmodularyzowanych systemów.

DziÄ™ki tej książce zrozumiesz praktyczne znaczenie zÅ‚ożonoÅ›ci dziedziny i behawioralnych aspektów jÄ™zyka dziedzinowego. Poznasz podstawowe zasady DDD i nauczysz siÄ™ używać takich narzÄ™dzi jak EventStorming, Event Sourcing i CQRS. Dowiesz siÄ™, jak stosuje siÄ™ DDD do różnych stylów architektonicznych, takich jak REST, systemy reaktywne i mikrousÅ‚ugi. Nauczysz siÄ™ pracować we frameworku .NET Core 2.2, aby przetÅ‚umaczyć modele dziedzinowe na wykonywalny kod C#, oraz Vue.js, aby zbudować frontend aplikacji. Nie zabrakÅ‚o tutaj również zagadnieÅ„ refaktoryzacji kodu, numerowania wersji zdarzeÅ„ i migracji. W rezultacie poszczególne zespoÅ‚y w organizacji bÄ™dÄ… mogÅ‚y pracować elastyczniej i efektywniej dziÄ™ki ulepszonym usÅ‚ugom i oddzielonym interakcjom.

W książce między innymi:

  • angażowanie interesariuszy biznesowych do rozwiÄ…zywania zÅ‚ożonoÅ›ci dziedziny
  • koncepcja kontekstu ograniczonego i agregatu
  • projektowanie modeli tymczasowych na podstawie zachowania
  • wzorzec CQRS i modele odczytu wykorzystujÄ…ce rzutowania
  • jednokierunkowy przepÅ‚yw interfejsu użytkownika w Vue.js
  • praktyczne stosowanie zasad projektowania dziedzinowego

Programowanie dziedzinowe: tak siÄ™ trafia w sedno potrzeb!

Dodaj do koszyka Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji

 

Osoby które kupowały "Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji", wybierały także:

  • Gray Hat C#. JÄ™zyk C# w kontroli i Å‚amaniu zabezpieczeÅ„
  • ASP.NET Core 6. Kurs video. Rozwijaj aplikacje webowe z Entity Framework Core
  • Testowanie automatyczne w .NET. Kurs video. Zastosowania frameworka nUnit
  • Programowanie asynchroniczne i równolegÅ‚e w C#. Kurs video. Poziom podstawowy
  • Technologia LINQ. Kurs video. Warsztat pracy z danymi z różnych źródeÅ‚

Dodaj do koszyka Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji

Spis treści

Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji -- 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

Dodaj do koszyka Domain-Driven Design dla .NET Core. Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.