Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc

Simon says...

Szymon Pobiega o architekturze i inżynierii oprogramowania
Application Events vs Domain Events
Bardzo szybko przywykłem do idei "domain events" Udiego i nie spodziewałem się napotkania w kodzie DDDSample innego rozwiązania. Jakież było więc moje zdziwienie, gdy zdarzenia (z natury) domenowe odnalazłem nie na poziomie modelu domeny, ale na poziomie warstwy aplikacyjnej. Postanowiłem przejrzeć się bliżej temu tematowi (zamiast na ślepo kopiować Javowe rozwiązanie).

Wnioski mam dwa. Po pierwsze drobnoziarnista struktura pakietów Javy sprawia, że warstwa aplikacji jest wolna od kodu związanego z UI lub komunikatami (tym zajmuje się osobna warstwa fasady), więc umieszczanie tam zdarzeń nie jest dużym naruszeniem enkapsulacji logiki domenowej. Co innego w .NET, kiedy zwykle obie odpowiedzialności -- logiki i jej fasady -- realizowane są przez jedno assembly (i być może nawet jedną klasę).

Po drugie, umieszczenie zdarzeń na poziomie warstwy aplikacji zapobiega konfliktowi nazw "domain event"-ów Udiego ze zdarzeniami-elementami modelu domeny (niemodyfikowalnymi encjami).

Ostatecznie postanowiłem zmodyfikować nieco oryginalny projekt, aby móc użyć koncepcji "domain event" w DDDSample.Net.

Więcej na ten temat możecie poczytać na dddsamplenet.blogspot.com (po angielsku).

Opublikowane 8 października 2009 17:53 przez simon

Komentarze:

# Simon says... : Application Events vs Domain Events @ 8 października 2009 18:48

Dziękujemy za publikację - Trackback z dotnetomaniak.pl

dotnetomaniak.pl

# re: Application Events vs Domain Events @ 11 października 2009 15:44

"Mistrzu", dobrze ze moderujesz komentarze i wycinasz je.

To taki __prywatny__ komentarz.

1. zejdz z tonu. Prawdy objawione ktore glosisz w swoj sposob sa zbyt staowcze jak na prawdwy ogolne "archotektoniczne". Zgodze sie ze wiekszosc twierdzen (powiedzmy 60-80%) ktore wyglaszasz, spoelniaja sie w rachitycznych aplikacjach typu "aplikacja webowa". Ogolnie stwierdzajac ich uzycie w sposob jaki zaprezentowales (do problemow bardziej rozbudowanych nich web app) powoduje nadmiarowasc kodu, bledogennosc, etc...

2. ogolnie czesto (~50%) piszesz sensownie i sie milo to czyta, ale czasame jk cos nie pretlumaczysz, czy odworcisz kota ogonem prezentujac jakas wizje, czy wogle w zapedzie wdrazaniazapomniesz o zserszym kontexcie, to sie odehcwiewa nawet skomentaowac problemy z twoim textem.

3. abye nie byl goloslownym looknijmy na twoj nowy wynalazek: "I find DDD's Value Objects very similar to these .NET stucts -- both are immutable and both are considered equal when contain the same atomic data". Od kiedy to struktury sa immutable w .NET/C# ??? (przy okazji z raz zdarzylo ci sie zameinnie uzyc C# i jakis ogolny jezyk .NET - co przeceiz nie jet tozsame)

4. ogolnie: na webie swiat sie nie konczy.

TROCHE WIECEJ POKORY!

wojciech . gebczyk @ gmail . com

Wojciech Gebczyk

# re: Application Events vs Domain Events @ 12 października 2009 08:37

Po pierwsze, nie moderuje, ani wycinam komentarzy.

Nie wiem o co Ci chodzi, ale uważam, że jeśli masz do mnie jakiś żal to powinieneś to załatwić prywatnie, a nie tutaj.

Specjalnie przed chwilą przejrzałem komentarze i z tego co widzę, to na Twój ostatni moja odpowiedź była "pokorna" - zgodziłem się i przeprosiłem za nieścisłość edytując posta.

Wiem, że na WWW świat się nie kończy, ale ponieważ aktualnie pracuje z takimi aplikacjami, o takich piszę. Nigdy nie pisałem, że moje rozwiązanie są obowiązkowe. Są moje i mogę je z czystym sumieniem polecić. Ale nie zawsze i nie każdemu. Ponieważ bloguje na tematy architektoniczne oczekuję, że moi czytelnicy są w stanie sami osądzić trafność moich pomysłów.

Oczywiście, struktury w .NET są modyfikowalne, tak samo jak Value Objects w DDD. W przypadku jednych, jak i drugich MOCNO ODRADZANE JEST jednak wykorzystywanie tego faktu, ponieważ prowadzi to do BRZYDKICH rozwiązań.

Oczywiście, że C# i .NET nie są tożsame, ale to taki SKRÓT MYŚLOWY, jako, że C# jest najpowszechniej w naszym kręgu kulturowym używanym językiem .NET. Chciałbym zauważyć, że moje posty nie dotyczą mechanizmów CLR i dlatego mogę sobie pozwolić na takie drobne nieścisłości.

simon

# re: Application Events vs Domain Events @ 12 października 2009 17:42

...kogoś poniosło?

Procent

Komentarze anonimowe wyłączone