Grzegorz Kożuchowski

Grzegorz Kożuchowski Prezes Zarządu GoPOS
Sp. z o.o. / CEO
UpVision

Temat: DDD - prezentacja + artykuł

Poniżej chciałbym zaproponować do przeczytania dość ciekawego artykułu i oglądnięcia prezentacji na temat DDD autora Sławomira Sobótki. Przybliża on w/w zagadnienie wraz z przykładem.

Prezentacja: http://prezi.com/mwtwdw2i7q4h/domain-driven-design-a-p...

Artykuł (od 42 strony): http://sdjournal.pl/magazine/1747-nosql-nierelacyjne-s...
Wojciech Soczyński

Wojciech Soczyński Programista
eksplorator -
blog.wsoczynski.pl

Temat: DDD - prezentacja + artykuł

Grzegorz Kożuchowski:
Poniżej chciałbym zaproponować do przeczytania dość ciekawego artykułu i oglądnięcia prezentacji na temat DDD autora Sławomira Sobótki. Przybliża on w/w zagadnienie wraz z przykładem.

Prezentacja: http://prezi.com/mwtwdw2i7q4h/domain-driven-design-a-p...

Artykuł (od 42 strony): http://sdjournal.pl/magazine/1747-nosql-nierelacyjne-s...

...and then ?

konto usunięte

Temat: DDD - prezentacja + artykuł

Wojciech Soczyński:

...and then ?

There is no 'then'. There's only here and now:)
Wojciech Soczyński

Wojciech Soczyński Programista
eksplorator -
blog.wsoczynski.pl

Temat: DDD - prezentacja + artykuł

Sebastian Malaca:
Wojciech Soczyński:

...and then ?

There is no 'then'. There's only here and now:)
Imagine, that there is no sponge :P Tak btw. mam wrażenie, że te post to jakaś kryptoreklama SDJ :>
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: DDD - prezentacja + artykuł

Wojciech Soczyński:
Sebastian Malaca:
Wojciech Soczyński:

...and then ?

There is no 'then'. There's only here and now:)
Imagine, that there is no sponge :P Tak btw. mam wrażenie, że te post to jakaś kryptoreklama SDJ :>

nie jest to wykluczone...
Wojciech Soczyński

Wojciech Soczyński Programista
eksplorator -
blog.wsoczynski.pl

Temat: DDD - prezentacja + artykuł

Tak czy inaczej, z prezentacji dowiedziałem się ciekawych rzeczy. Najbardziej zastanawia mnie archetyp "saga" ;>
Jarek W.

Jarek W. Software Engineer

Temat: DDD - prezentacja + artykuł

Prezentacja ta była wygłaszana przez jej autora na konferencji Confitura 2011 (http://confitura.pl/presentations#30). Swoją drogą była ciekawa, pewnie niedługo będzie na parleys.com nagranie z niej.

Ale tak w ogóle, to nie wiem po co link do tej prezentacji został tu umieszczony. Oglądanie jej (samych punktów) bez omówienia jest moim zdaniem trochę bez sensu...
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: DDD - prezentacja + artykuł

Wojciech Soczyński:
Tak czy inaczej, z prezentacji dowiedziałem się ciekawych rzeczy. Najbardziej zastanawia mnie archetyp "saga" ;>

tez tego nie zrozumiałem.. mam pod ręką Opis DDD i tam stoi, że podstawowe wzorce analityczne to:

Value Objects
Services
Aggregates
Factories
Repositories

ale ta prezentacja bez słów autora faktycznie jest tylko spisem treści wystąpienia
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: DDD - prezentacja + artykuł

Artykuł z SDJ autorstwa Sławka Sobótki, ciekawy wstęp, ale widać że pisany na szybko :)
Polecam też jego wykład na Wrocławskim JUGu http://www.vimeo.com/19844548
Jarek W.

Jarek W. Software Engineer

Temat: DDD - prezentacja + artykuł

Jarek W.:
Prezentacja ta była wygłaszana przez jej autora na konferencji Confitura 2011 (http://confitura.pl/presentations#30). Swoją drogą była ciekawa, pewnie niedługo będzie na parleys.com nagranie z niej.

Ale tak w ogóle, to nie wiem po co link do tej prezentacji został tu umieszczony. Oglądanie jej (samych punktów) bez omówienia jest moim zdaniem trochę bez sensu...

Gdyby ktoś był nadal zainteresowany, to nagranie video z tej prezentacji jest już dostępne pod adresem http://vimeo.com/26797989 (uwaga - najlepiej pominąć pierwsze dwie i pół minuty).
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: DDD - prezentacja + artykuł

Jarek W.:
Gdyby ktoś był nadal zainteresowany, to nagranie video z tej prezentacji jest już dostępne pod adresem [...]

IMHO Grzesiek powinien dodać tą prezentacje w pierwszym poście.
Maciej Aniserowicz

Maciej Aniserowicz software
developer/architect

Temat: DDD - prezentacja + artykuł

Właśnie obejrzałem tą prezentację, ale szczerze mówiąc nie jestem zachwycony.
Nie wiem czy to wynika ze zbyt małego skupiania się na najważniejszych wg mnie koncepcjach (głównie bounded context) czy może z prostego faktu, że o DDD nie da się opowiedzieć w 40 minut. Odnoszę wrażenie, że gdybym wcześniej nie miał styczności z DDD, nie przeczytał "the blue book", to ta sesja niewiele by mi wyjaśniła.
Nie podobało mi się też "niejawne" przedstawianie DDD jako alternatywy dla SOA - moim zdaniem ze szkodą dla tego drugiego.

A jak Wasze wrażenia?

P.S. Przykłady Saga napisane są w C# z wykorzystaniem szyny NServiceBus, na stronie tego projektu można też więcej nich poczytać (http://nservicebus.com/Sagas.aspx). Polecam też lekturę bloga Udiego Dahana, twórcy NSB: http://www.udidahan.com/category/workflow/.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: DDD - prezentacja + artykuł

Nie podobało mi się też "niejawne" przedstawianie DDD jako alternatywy dla SOA - moim zdaniem ze szkodą dla tego drugiego.

A jak Wasze wrażenia?

Moim zdaniem DDD nie ma nic wspólnego z jakąś konkretną technologią (choć można z pomocą kodu ilustrować zastosowanie tej koncepcji analizy i projektowania) .... jest to raczej "metoda na przejście" od rzeczywistości do projektu koncepcyjnego bo nawet nie implementacji...po drugie moim zdaniem mowa o DDD (gdzie kluczem jest Domain Model) w oderwaniu od np. wzorca MVC (także mamy tu ów Model) jest zupełna abstrakcją...
Maciej Aniserowicz

Maciej Aniserowicz software
developer/architect

Temat: DDD - prezentacja + artykuł

Jarek Żeliński:

Moim zdaniem DDD nie ma nic wspólnego z jakąś konkretną technologią (choć można z pomocą kodu ilustrować zastosowanie tej koncepcji analizy i projektowania) .... jest to raczej "metoda na przejście" od rzeczywistości do projektu koncepcyjnego bo nawet nie implementacji...

Z technologią - owszem, nie ma nic wspólnego.
Ale z implementacją - jak najbardziej! Właśnie po to jest "ubiquitous language" - żeby pojęcia z życia znalazły odwzorowanie tak w specyfikacji, jak i podczas analizy, ale również na poziomie kodu/testów, i w rozmowach między programistami. Przecież istnieje nawet całe podejście do tworzenia testów zrozumiałych dla "biznesu", gdzie testy same w sobie zawierają pojęcia stricte "domenowe" (mowa o BDD, przykładowe narzędzie dla .NET: SpecFlow).
Jarek Żeliński:

po drugie moim zdaniem mowa o DDD (gdzie kluczem jest Domain Model) w oderwaniu od np. wzorca MVC (także mamy tu ów Model) jest zupełna abstrakcją...

Albo nie zrozumiałem, albo nie do końca się zgodzę:). Model modelowi nierówny.
Model domeny nie musi być modelem w rozumieniu wzorca MVC (to już jest bardziej jeden z wielu sposobów komunikacji aplikacji z domeną, a osiągnąć to można na wiele sposobów, niekoniecznie stosując MVC/MVP/MV[whateva]).
Tak samo jak model domeny prawdopodobnie nigdy nie pokryje się z modelem relacyjnym reprezentującym dane w bazie.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: DDD - prezentacja + artykuł

Maciej Aniserowicz:
Z technologią - owszem, nie ma nic wspólnego.
Ale z implementacją - jak najbardziej! Właśnie po to jest "ubiquitous language" - żeby pojęcia z życia znalazły odwzorowanie tak w specyfikacji, jak i podczas analizy, ale również na poziomie kodu/testów, i w rozmowach między programistami.

to mam na myśli to, że obiektowy opis dziedziny to nie implementacja a "model" jakiejś logiki np. biznesowej. Implementacją tak na prawdę jest istnienie obiektowych języków programowania czyli można "wstawić" obiektowy model dziedziny "wprost" do obiektowego projektu systemu i tu mam ów "ubiquitous language"
po drugie moim zdaniem mowa o DDD (gdzie kluczem jest Domain Model) w oderwaniu od np. wzorca MVC (także mamy tu ów Model) jest zupełna abstrakcją...
Model domeny nie musi być modelem w rozumieniu wzorca MVC (to już jest bardziej jeden z wielu sposobów komunikacji aplikacji z domeną, a osiągnąć to można na wiele sposobów, niekoniecznie stosując MVC/MVP/MV[whateva]).

jeżeli na MVC spojrzymy tak, że jest to wzorzec, który między innymi wydziela Model jako "opis logiki systemu jako narzędzia pracy człowieka" i separuje od logiki sterowania "implementacją" to dokument będący modelem DDD jest "wsadem" 1:1 jako Model w MVC.

Tak samo jak model domeny prawdopodobnie nigdy nie pokryje się z modelem relacyjnym reprezentującym dane w bazie.

ale DDD to nie model relacyjny ..... i RDBMS nie ma tu nic do rzeczy
Maciej Aniserowicz

Maciej Aniserowicz software
developer/architect

Temat: DDD - prezentacja + artykuł

Jarek Żeliński:

to mam na myśli to, że obiektowy opis dziedziny to nie implementacja a "model" jakiejś logiki np. biznesowej. Implementacją tak na prawdę jest istnienie obiektowych języków programowania czyli można "wstawić" obiektowy model dziedziny "wprost" do obiektowego projektu systemu i tu mam ów "ubiquitous language"

OK, tak przedstawiony pogląd podzielam, kwestia różnego rozumienia słowa "imeplementacja".
jeżeli na MVC spojrzymy tak, że jest to wzorzec, który między innymi wydziela Model jako "opis logiki systemu jako narzędzia pracy człowieka" i separuje od logiki sterowania "implementacją" to dokument będący modelem DDD jest "wsadem" 1:1 jako Model w MVC.

Można realizować DDD bez MVC, można realizować MVC bez DDD. Moim zdaniem nie ma tu żadnej zależności oprócz wspólnego słowa "model" oznaczającego dwie różne rzeczy. Model domeny może być modelem dla MVC, ale wydaje mi się że łączenie tych pojęć to mieszanie dwóch perspektyw.
Tak samo jak model domeny prawdopodobnie nigdy nie pokryje się z modelem relacyjnym reprezentującym dane w bazie.

ale DDD to nie model relacyjny ..... i RDBMS nie ma tu nic do rzeczy

Dokładnie o to mi chodziło - i w DDD mamy model(e), i w MVC mamy model, i w bazach danych mamy model. Każdy z tych modeli jest różny i powinien być rozpatrywany osobno.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: DDD - prezentacja + artykuł

Maciej Aniserowicz:
Można realizować DDD bez MVC, można realizować MVC bez DDD. Moim zdaniem nie ma tu żadnej zależności oprócz wspólnego słowa "model" oznaczającego dwie różne rzeczy. Model domeny może być modelem dla MVC,

MVC to tylko przykład ale faktycznie nie jedyny ... użyłem wzorca MVC bo to pewien "metamodel" większości chyba frameworków...
ale wydaje mi się że łączenie tych pojęć to mieszanie dwóch perspektyw.

Model to opis (abstrakcja) "świata" reszta to implementacja innych niż funkcjonalne, wymagań. w każdym razie mam na myśli że Model jest zawsze "jakąś częścią" oprogramowania.

Następna dyskusja:

Przykład DDD




Wyślij zaproszenie do