Od jakiegoś czasu chodzi mi po głowie przedstawienie Domain Driven
Design.
Póki co wymyśliłem takie 4 tematy główne:
- ogólnie o DDD - mniej więcej to co możecie znaleźć w książce Evansa
http://domaindrivendesign.org/books#DDD, czyli wprowadzenie do ddd,
dlaczego powinno to Was interesować, jakie problemy rozwiązuje (w
ogóle mam problemy z developentem), dlaczego NIE powinniście tego
używać (trochę przewrotnie)
- trochę szerzej o DDD - nowe koncepcje powstałe po wydaniu książki
Evansa - min Distributed DDD (prace Grega Younga)
http://art-of-software.blogspot.com/2009/03/undergroundowy-domain-dri... - omówienie przykładowej implementacji idei DDD http://domaindrivendesign.org/node/42 opartej o Spring, Hibernate, i różne klienty: Swing, Spring MVC,
WebServices
- przedstawienie DDD Lite - jakaś tam moja wizja wykorzystania
"lekkiego" ddd w małych i prostych projektach. (Generalnie DDD powinno
się stosować w skomplikowanych przypadkach, ale gdy już zachwycicie
się koncepcją DDD, to będziecie chcieli stosować ją wszędzie - nawet w
małych projektach). Przykładowy mały projekt w Seam, Hibernate, JSF z
elementami DDD.
Na pewno na raz się nie da zrobić wszystkiego, więc czekam na sugestie
odnośnie zapotrzebowania: co i w jakiej kolejności sobie ew.
chcielibyście zobaczyć.
Co do samej tematyki to myślę że na początek wprowadzenie do DDD
(dlaczego tak/dlaczego nie w porównaniu np. do anemicznego modelu i
SOA) będzie ok.
Prawdopodobnie mało kto słyszał lub czytał o tym 'nowym' podejściu.
Wystarczy że zaczniesz mówić o encjach z metodami czy ograniczonym
kontekście to pewnie i tak część osób spojrzy na Ciebie jak na
wariata ;)
Dla mnie np. ograniczony kontekst wydaje się dość ważne, a zarazem
jego wyznaczenie nie jest sprawą prostą. Jak powinniśmy określać takie
konteksty?
To samo tyczy się domen corowych, wspomagających i generycznych - na
czym powinniśmy się skupić najbardziej przy tworzeniu naszej
aplikacji, a co jest mało istotne i możemy to zrobić później lub nawet
kupić gotowe rozwiązanie?
No i przydałby się jakiś prawdziwy przykład z życia, nie tylko
filozofie. Dodatkowo jeżeli będzie czas to może jeszcze coś o
refaktoryzacji istniejących aplikacji wielowarstwowych w kierunku DDD.
Może w końcu niedługo przestaniemy być daleko za murzynami i dotrzemy
tam gdzie Smalltalk był 30 lat temu...
On 27 Maj, 01:27, Slawek Sobotka <sso...@gmail.com> wrote:
> Od jakiegoś czasu chodzi mi po głowie przedstawienie Domain Driven
> Design.
> Póki co wymyśliłem takie 4 tematy główne:
> - ogólnie o DDD - mniej więcej to co możecie znaleźć w książce Evansahttp://domaindrivendesign.org/books#DDD, czyli wprowadzenie do ddd,
> dlaczego powinno to Was interesować, jakie problemy rozwiązuje (w
> ogóle mam problemy z developentem), dlaczego NIE powinniście tego
> używać (trochę przewrotnie)
> - trochę szerzej o DDD - nowe koncepcje powstałe po wydaniu książki
> Evansa - min Distributed DDD (prace Grega Younga)http://art-of-software.blogspot.com/2009/03/undergroundowy-domain-dri...
> - omówienie przykładowej implementacji idei DDDhttp://domaindrivendesign.org/node/42 > opartej o Spring, Hibernate, i różne klienty: Swing, Spring MVC,
> WebServices
> - przedstawienie DDD Lite - jakaś tam moja wizja wykorzystania
> "lekkiego" ddd w małych i prostych projektach. (Generalnie DDD powinno
> się stosować w skomplikowanych przypadkach, ale gdy już zachwycicie
> się koncepcją DDD, to będziecie chcieli stosować ją wszędzie - nawet w
> małych projektach). Przykładowy mały projekt w Seam, Hibernate, JSF z
> elementami DDD.
> Na pewno na raz się nie da zrobić wszystkiego, więc czekam na sugestie
> odnośnie zapotrzebowania: co i w jakiej kolejności sobie ew.
> chcielibyście zobaczyć.
Powiem szczere, ze mam okazje przygotowywac coś w duchu DDD i... faktycz nie
opory by ly na początku duże ale odpowiedzialność odpowiednich obiektów z
czasem przynosi efekt. Wiadomo gdzie co i jak szukać, jest łatwiej i
bardziej zrozumiale :) Bo np. skoro należy zmienić status zadania, to
wiadomo, że metodę to realizującą znajdziemy w... oczywiście Zadaniu :)
przykładów można mnożyć.
A co dożyciowych przykładów, to faktycznie będą przydatne :) Zawsze byłoby
co podpatrzeć.
> Co do samej tematyki to myślę że na początek wprowadzenie do DDD
> (dlaczego tak/dlaczego nie w porównaniu np. do anemicznego modelu i
> SOA) będzie ok.
> Prawdopodobnie mało kto słyszał lub czytał o tym 'nowym' podejściu.
> Wystarczy że zaczniesz mówić o encjach z metodami czy ograniczonym
> kontekście to pewnie i tak część osób spojrzy na Ciebie jak na
> wariata ;)
> Dla mnie np. ograniczony kontekst wydaje się dość ważne, a zarazem
> jego wyznaczenie nie jest sprawą prostą. Jak powinniśmy określać takie
> konteksty?
> To samo tyczy się domen corowych, wspomagających i generycznych - na
> czym powinniśmy się skupić najbardziej przy tworzeniu naszej
> aplikacji, a co jest mało istotne i możemy to zrobić później lub nawet
> kupić gotowe rozwiązanie?
> No i przydałby się jakiś prawdziwy przykład z życia, nie tylko
> filozofie. Dodatkowo jeżeli będzie czas to może jeszcze coś o
> refaktoryzacji istniejących aplikacji wielowarstwowych w kierunku DDD.
> Może w końcu niedługo przestaniemy być daleko za murzynami i dotrzemy
> tam gdzie Smalltalk był 30 lat temu...
> On 27 Maj, 01:27, Slawek Sobotka <sso...@gmail.com> wrote:
> > Od jakiegoś czasu chodzi mi po głowie przedstawienie Domain Driven
> > Design.
> > Póki co wymyśliłem takie 4 tematy główne:
> > - ogólnie o DDD - mniej więcej to co możecie znaleźć w książce
> Evansahttp://domaindrivendesign.org/books#DDD, czyli wprowadzenie do ddd,
> > dlaczego powinno to Was interesować, jakie problemy rozwiązuje (w
> > ogóle mam problemy z developentem), dlaczego NIE powinniście tego
> > używać (trochę przewrotnie)
> > - trochę szerzej o DDD - nowe koncepcje powstałe po wydaniu książki
> > Evansa - min Distributed DDD (prace Grega Younga)
> http://art-of-software.blogspot.com/2009/03/undergroundowy-domain-dri...
> > - omówienie przykładowej implementacji idei DDDhttp://
> domaindrivendesign.org/node/42
> > opartej o Spring, Hibernate, i różne klienty: Swing, Spring MVC,
> > WebServices
> > - przedstawienie DDD Lite - jakaś tam moja wizja wykorzystania
> > "lekkiego" ddd w małych i prostych projektach. (Generalnie DDD powinno
> > się stosować w skomplikowanych przypadkach, ale gdy już zachwycicie
> > się koncepcją DDD, to będziecie chcieli stosować ją wszędzie - nawet w
> > małych projektach). Przykładowy mały projekt w Seam, Hibernate, JSF z
> > elementami DDD.
> > Na pewno na raz się nie da zrobić wszystkiego, więc czekam na sugestie
> > odnośnie zapotrzebowania: co i w jakiej kolejności sobie ew.
> > chcielibyście zobaczyć.
> Od jakiegoś czasu chodzi mi po głowie przedstawienie Domain Driven
> Design.
> Póki co wymyśliłem takie 4 tematy główne:
> - ogólnie o DDD - mniej więcej to co możecie znaleźć w książce Evansa
> http://domaindrivendesign.org/books#DDD, czyli wprowadzenie do ddd,
> dlaczego powinno to Was interesować, jakie problemy rozwiązuje (w
> ogóle mam problemy z developentem), dlaczego NIE powinniście tego
> używać (trochę przewrotnie)
> - trochę szerzej o DDD - nowe koncepcje powstałe po wydaniu książki
> Evansa - min Distributed DDD (prace Grega Younga)
> http://art-of-software.blogspot.com/2009/03/undergroundowy-domain-dri... > - omówienie przykładowej implementacji idei DDD
> http://domaindrivendesign.org/node/42 > opartej o Spring, Hibernate, i różne klienty: Swing, Spring MVC,
> WebServices
> - przedstawienie DDD Lite - jakaś tam moja wizja wykorzystania
> "lekkiego" ddd w małych i prostych projektach. (Generalnie DDD powinno
> się stosować w skomplikowanych przypadkach, ale gdy już zachwycicie
> się koncepcją DDD, to będziecie chcieli stosować ją wszędzie - nawet w
> małych projektach). Przykładowy mały projekt w Seam, Hibernate, JSF z
> elementami DDD.
> Na pewno na raz się nie da zrobić wszystkiego, więc czekam na sugestie
> odnośnie zapotrzebowania: co i w jakiej kolejności sobie ew.
> chcielibyście zobaczyć.
W dniu 27 maja 2009 09:17 użytkownik Rafał Jamróz <rafaljam...@gmail.com> napisał:
> Chcialbym tez zobaczy cos na wzor warsztatu, np. jak dzieki mysleniu o > bogatej domenie odkrywamy nowe obiekty (agregaty, serwisy, vo ... ).
Myślę, że to materiał na osobne spotkanie, bo ddd to generalnie temat rzeka. Można by przygotować parę problemów biznesowych w jakiejś znanej każdemu dziedzinie i wspólnie spróbować stworzyć model, który je rozwiązuje. Wtedy każdy zobaczyłby jak DDD wygląda w praktyce.
> Licze na jakies fajne przyklady (fajnie ze stworzysz jakas aplikacje, > ale zawsze mozna sie posluzyc dddsample : ).
No właśnie: fajne przykłady to podstawa. W Internecie ich za wiele nie ma. Idea DDD po poczytaniu o niej może wyglądać pięknie, ale jak zaczyna się to stosować w praktyce, do konkretnych problemów, z użyciem istniejących bibliotek i frameworków, to wychodzi megakupa.
Co do przykładu to mam do zaoferowania na publicznym forum: - dddsampe tym, ktorzy jeszcze nie mieli okazji sie temu przyjrzec - przecieki z malego projektu, ktory wykorzystuje elementy ddd - podejscie potocznie zwane "ddd lite" (z tym, ze potrzebowalbym nieco czasu na obfuskacje binesu poniewaz jest to komercyjny kod - wiec raczej na najblizsze spotkanie nie dam rady)
Odnosnie jeszcze nowych elementow ddd, czyli tego co sam Evans nazywa "to czego nauczylismy sie od wydania ksiazki" to jest to tylko jakis tam moj risercz. Fajnie byloby gdybyscie dorzucili "cos od siebie;)" - moznaby wowczas zrobic wspolną prezentację syntetyzującą doswiadczenia/wiedze - ale to mysle ze moze na nastepnym spotkaniu.
Istotna uwaga Sławka Chmiela - metody biznesowa w encjach to bedzie dostateczny szokna poczatek - sam nie moglem sie pozbierac po tym jak to po raz pierwszy zobaczylem:)
@Irek Wsparcie frameworkow dla DDD... hmm ogolnie przemyslowe frameworki nie nadążają za nowymi koncepcjami. A czytajac wypowiedzi niektorych tworcow frameworkow persystencji i integracyjnych mozna jedynie zalac sie łzami: http://relation.to/2786.lace http://relation.to/Bloggers/RepositoryPatternVsTransparentPersistence Widac, ze w najblizszej przyszlosci z tego obozu nie ma co spodziewac sie pękania betonu;P
Na pocieszenie mamy: qi4j http://domaindrivendesign.org/library/oberg_2009 ROO (real object oriented) - projekt w ramach spring source - poki co widzialem tylko enigmatyczne zapowiedzi. Czyzby bastion programowania proceduralnego (Spring) pekał od srodka;P
Oczywiście będzie można liczyć na nagrywanie spotkań o DDD? Jak dla
mnie to w jednym spotkaniu się nie da ładnie tego zaprezentować z
opisem ogólbym o co chodzi w DDD i przeanalizowaniem jakiś przykładów.
Raczej tak jakoś na 3 spotkania :-)