Dlaczego tylko przy CRUDzie? Jakiś przykład?
Nie napisałem, że tylko w CRUDzie. CRUD jest przykładem czegoś, do czego DDD nie ma zastosowania.
Nie rozumiem, przecież w testach sprawdzę, czy walidacja operacji przebiega poprawnie, więc w czym problem?
W tym, że testy nie sprawdzą, czy programista wywołuje tę walidację zawsze podczas majstrowania przy obiekcie.
No chyba taki jest cel walidacji - sprawdzenie poprawnosci danych wejsciowych i mozliwosci wykonania operacji.
Owszem - danych wejściowych. Podczas wykonywania logiki biznesowej, nie operujesz na danych wejściowych tylko na regułach/przepływach biznesowych.
Ale ja tu caly czas pisze, ze takie rzeczy mozna i trzeba testowac.
Podobno można też pisać w językach dynamicznie typowanych i zastąpić system typów testami.
To, ze to nie jest do konca obiektowe, nie znaczy od razu, ze jest zle. W DDD do serwisow aplikacyjnych tez trzeba pisac testy, bo ta walidacja w encjach jest tylko na wszelki wypadek, gdyby warstwa aplikacji zawiodla.
Oj nie, Ta walidacja służy do czegoś zupełnie innego.
Roznica jest taka, ze przy TS nie mamy duplikacji kodu i nic nie wnoszacych wrapperow na ORMa.
Bynajmniej. To w projektach opartych o TS jest masa niczego nie wnoszących wrapperów. W DDD nie ma takich, tylko projektów w DDD nie ma.