ksiazki24h.pl
wprowadź własne kryteria wyszukiwania książek: (jak szukać?)
Twój koszyk:   0 zł   zamówienie wysyłkowe >>>
Strona główna > opis książki

DOMAIN-DRIVEN DESIGN DLA .NET CORE


ZIMAREV A.

wydawnictwo: HELION , rok wydania 2021, wydanie I

cena netto: 103.95 Twoja cena  98,75 zł + 5% vat - dodaj do koszyka

Domain-Driven Design dla .NET Core

Jak rozwiązywać złożone problemy podczas projektowania architektury aplikacji


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

O autorze
O recenzentach
Przedmowa
Dla kogo przeznaczona jest ta książka?
Co obejmuje ta książka?
Jak najlepiej wykorzystać tę książkę?
Pobieranie przykładów kodu
Konwencje użyte w tej książce

1. Dlaczego projektowanie dziedzinowe?
Zrozumieć problem
Przestrzeń problemu i przestrzeń rozwiązania
Co poszło nie tak z wymaganiami?
Jak radzić sobie ze złożonością?
Rodzaje złożoności
Klasyfikowanie złożoności
Podejmowanie decyzji i błędy poznawcze
Wiedza
Wiedza dziedzinowa
Unikanie ignorancji
Podsumowanie
Dalsza lektura

2. Język i kontekst
Język wszechobecny
Język dziedzinowy
Dziedzina przykładowej aplikacji
Wyraźne określanie rzeczy dorozumianych
Język dziedzinowy dla ogłoszeń drobnych
Język i kontekst
Podsumowanie

3. EventStorming
EventStorming
Język modelowania
Wizualizacja
Porady dotyczące organizowania warsztatów EventStorming
Kogo zaprosić?
Przygotowanie przestrzeni
Materiały
Sala
Warsztaty
Czas i harmonogram
Początek
Przebieg warsztatów
Po warsztatach
Nasz pierwszy model
Podsumowanie
Dalsza lektura

4. Projektowanie modelu
Model dziedziny
Co reprezentuje model?
Anemiczny model dziedziny
Języki funkcjonalne i modele anemiczne
Co należy uwzględnić w modelu dziedziny?
Uwagi dotyczące projektowania
CQRS
EventStorming na poziomie projektu
Poszerzanie wiedzy
Przygotowanie do warsztatów
Notacja rozszerzona
Polecenia
Modele odczytu
Użytkownicy
Reguły
Połączenie wszystkich elementów
Modelowanie dziedziny referencyjnej
Podsumowanie
Dalsza lektura

5. Implementacja modelu
Wymagania techniczne
Rozpoczęcie implementacji
Tworzenie projektów
Framework
Przełożenie modelu na kod
Encje
Tożsamość
Encja ogłoszenia drobnego
Dodawanie zachowania
Zapewnianie poprawności
Ograniczenia dla wartości wejściowych
Obiekty wartości
Metody wytwórcze
Usługi dziedzinowe
Niezmienniki encji
Zdarzenia dziedzinowe w kodzie
Zdarzenia dziedzinowe jako obiekty
Generowanie zdarzeń
Zdarzenia zmieniają stan
Podsumowanie

6. Działanie za pomocą poleceń
Wymagania techniczne
Otoczenie modelu dziedziny
Udostępnianie internetowego interfejsu API
Kontrakty publicznego API
Punkty końcowe HTTP
Warstwa aplikacji
Obsługa poleceń
Wzorzec procedury obsługi poleceń
Usługa aplikacji
Podsumowanie

7. Granica spójności
Wymagania techniczne
Spójność modelu dziedziny
Granice transakcji
Wzorzec Agregat
Ochrona niezmienników
Analiza ograniczeń dla polecenia
Egzekwowanie reguł
Encje wewnątrz agregatu
Podsumowanie

8. Utrwalanie agregatów
Wymagania techniczne
Utrwalanie agregatów
Repozytorium i jednostki pracy
Implementacja dla RavenDB
Implementacja Entity Framework Core
Podsumowanie

9. CQRS strona odczytu
Wymagania techniczne
Dodawanie profilów użytkowników
Zagadnienia dotyczące dziedziny profilu użytkownika
Organizowanie projektu dziedziny
Dodawanie nowych obiektów wartości
Korzeń agregatu profilu użytkownika
Strona aplikacji dla profilu użytkownika
Strona zapytań
CQRS i konflikt między odczytami a zapisami
Zapytania i modele odczytu
Implementowanie zapytań
API zapytań
Implementacja zapytań dla RavenDB
Implementacja zapytań dla frameworku encji
Podsumowanie

10. Event Sourcing
Wymagania techniczne
Dlaczego Event Sourcing
Problemy z utrwalaniem stanu
Czym jest Event Sourcing?
Event Sourcing wokół nas
Agregaty pozyskiwane ze zdarzeń
Strumienie zdarzeń
Magazyny zdarzeń
Utrwalanie oparte na zdarzeniach
Zapisywanie w bazie danych Event Store
Odczytywanie z bazy danych Event Store
Infrastruktura podłączania
Magazyn agregatów w usługach aplikacji
Uruchamianie aplikacji opartej na pozyskiwaniu zdarzeń
Podsumowanie
Dalsza lektura

11. Rzutowania i kwerendy
Zdarzenia i zapytania
Budowanie modeli odczytu na podstawie zdarzeń
Rzutowania
Subskrypcje
Implementacja rzutowań
Subskrypcje nadganiające
Rzutowania międzyagregatowe
Rzutowanie zdarzeń z dwóch agregatów
Wiele rzutowań na subskrypcję
Zdarzenia powiązane i strumienie specjalne
Wzbogacanie modeli odczytu
Kwerendowanie w rzutowaniach
Konwertowanie zdarzeń
Magazyn trwały
Punkty kontrolne
Utrwalanie modeli odczytu
Zakończenie
Podsumowanie

12. Kontekst ograniczony
Pułapka pojedynczego modelu
Zaczynaj od rzeczy małych
Znowu złożoność
Wielka kula błota
Konstruowanie systemów
Granice językowe
Autonomia zespołu
Ograniczanie pracy w toku
Poprawianie przepustowości
Prawo Conwaya
Luźne powiązania, odpowiednie ukierunkowanie
Aspekt geograficzny
Podsumowanie

13. Podział systemu
Kiedy, co i jak?
Kiedy dzielić?
Wyłaniające się granice
Co dzielić?
Wyłaniające się granice cd.
Jak podzielić?
Różne spojrzenia na projektowanie systemów
Proces projektowania
Dzielenie encji
Budowa systemu modułowego
Moduły wewnątrz jednego rozwiązania
Struktura modułu
Projekt kontraktów komunikatów
Projekt modułu dziedziny
Projekt aplikacji
Podejście funkcyjne
Moduły ładowania początkowego
Budowanie systemu
Podłączanie modułów do aplikacji
Integracja
Integracja między agregatami
Integracja między kontekstami
Interfejs użytkownika
Interfejs użytkownika ponad granicami
Kompozycja API
Kompozycja frontendowa
Mikrousługi
Kiedy nie stosować systemów rozproszonych
Jak stosować systemy rozproszone

Podsumowanie
Dalsza lektura

424 strony, Format: 17.0x24.0cm, oprawa miękka

Po otrzymaniu zamówienia poinformujemy,
czy wybrany tytuł polskojęzyczny lub anglojęzyczny jest aktualnie na półce księgarni.

 
Wszelkie prawa zastrzeżone PROPRESS sp. z o.o. 2012-2022