Please enable JavaScript.
Coggle requires JavaScript to display documents.
DNA Tydzien 7 (Lekcja 07.02 Implementacja Value Objects (Niemutowalne !!!,…
DNA Tydzien 7
Lekcja 07.02 Implementacja Value Objects
Niemutowalne !!!
konstruktor
metody nie zmieniajace stane
keyword final
Niezmienniki
walidacja w metodach wytworczych
konstruktor pod spodem wywolywany
Kolejnosc walidacji
od najmniej kosztowych do najbardziej
Driver bezpieczenstwo
Zachowania
Komponowanie
Porownywanie
wszystkie pola VO
Lekcja 07.05 Implementacja zdarzen
wewnetrzne
uzywane do komunikacji w BC
kompilator pilnuje kontraktu (wersji)
zewnetrzne
uzywane do komunikacji miedzy BC
sa wersjonowane
staja sie czescia publicznego API
proste i niemutowalne struktury
maja unikalny identyfikator
identyfikator przyczyny zdarzenia
Lekcja 07.08 Transport zdarzeń
Efekty uboczne
wewnętrzne
rośnie tranzakcja
implementacja gotowa na przetwarzanie asynchroniczne
zewnętrzne
Transport w jednej transakcji
łatwa implementacja (+)
niejawne efekty uboczne (+)
niejawne wiązania (-)
Transport w następnych tranzakcjach
łatwa implementacja (+)
brak wiązania (-)
problem zawodności )-)
Store and Forward (Outbox pattern)
bardziej złożona implementacja
deduplikacja
ponawianie
problem wielu instancji aplikacji
brak wiązania
gwarancja dostarczenia
Gwarancja dostarczania
at least one delivery
at most once delivery
Lekcja 07.03 Implementacja encji
Zachowania
mutowalne z sprawdzaniem regul biznesowych przy pomocy metod biznesowych
Memento
Strategie
Enkapsulacja list w dedykowanych obiektach
Lekcja 07.06 Implementacja Serwisy
domenowe
nalezy do warstwy domenowej
testowany w izolacji i jednostkowo
bezstanowy
aplikacyjne
nie zawiera logiki domenowej
komunikuje sie z zewnetrznymi serwisami
zajmuje sie logowaniem, tranzakcjami, tlumaczeniem bledow
operacje typu bulk
CommandHandlery generyczne
Lekcja 07.07 Publikacja Zdarzeń
wewnętrzna kolekcja zdarzeń
zwracanie zdarzeń
statyczna klasa publikująca
Lekcja 07.09 Dobór wzorca
wzorce projektowe
strategia
specyfikacja
dekorator
łańcuch odpowiedzialności
konfigurowalność
wektor zmiany
co się stanie?
kiedy się zmieni?
jaka jest szansa na zmianę?
jaki jest koszt refaktoryzacji?
Lekcja 07.01 Elementy konstrukcyjne
reprezentacja i opis
zachowan modelu
komendy
zapytania (widoki)
zdarzenia
reguly (niezmienniki)
agregaty
struktury modelu
wartosci (value objects)
nie zmieniaja sie w czasie
wartosc jest ich tozsamoscia
opisuja, sa atrybutami
encje
byty zmieniajace sie w czasie
posiada tozsamosc niezalezna od atrybutow
posiada cykl zycia
serwisy domenowe
operacje nie bedace czescia ani encji ani wartosci
bezstanowe wyliczenia
aplikacyjny
swpoiwo dla jakiegos use-case'a biznesowego
infrastrukturalny
wyslanie np. notyfikacji/eventu
cyklu zycia modelu
cykl zycia
fabryki
tworzenie skomplikowanych struktur
repozytoria
odczyt
utrwalanie
czysto techniczne znaczenie
dlaczego sa wazne?
niezaleznosc od technologii
feedback od biznesu
wszechoobecny jezyk
Lekcja 07.04 Lamanie regul biznesowych
Wyjatki
Rezultat
w postaci rezultatu pozytywnego lub negatywnego