Artur Świerc

Artur Świerc Programista PHP/Java

Temat: Domain-Driven Design i PHP

Podczas używania EM w kontrolerze zapaliła by mi się lampka. Zwykle utrwalanie to ciąg paru czynności. Później okaże się, że w innym kontrolerze trzeba zrobić to samo i hermetyzację mamy w czarnej dupie :)
Wojciech Soczyński

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

Temat: Domain-Driven Design i PHP

Artur Świerc:
Podczas używania EM w kontrolerze zapaliła by mi się lampka. Zwykle utrwalanie to ciąg paru czynności. Później okaże się, że w innym kontrolerze trzeba zrobić to samo i hermetyzację mamy w czarnej dupie :)

Mi też, natomiast widzę, że to podejście jest popularne w wielu przykładach, dlatego też szukam alternatyw. Więc co byś preferował - fasada, czy event ?

konto usunięte

Temat: Domain-Driven Design i PHP

Implementacja w Sf2 operacji na encjach (user)

https://github.com/FriendsOfSymfony/UserBundle/blob/mas...

Jest też UserListener, aby mieć pewność że pewne operacje zostaną wykonane przy zmianie w encji.
Używam, rozbudowuje, świetnie to jest zrobione ;)Michał Wujas edytował(a) ten post dnia 25.05.11 o godzinie 10:02
Wojciech Soczyński

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

Temat: Domain-Driven Design i PHP

Michał Wujas:
Implementacja w Sf2 operacji na encjach (user)

https://github.com/FriendsOfSymfony/UserBundle/blob/mas...

Jest też UserListener, aby mieć pewność że pewne operacje zostaną wykonane przy zmianie w encji.
Używam, rozbudowuje, świetnie to jest zrobione ;)

Z tego co widzę, to ta implementacja (podana w linku) traktuje obiekty encji wyłącznie jako DTO zaopatrzone tylko w gettery/settery (analizowałem UserInterface i UserManager) a to mi pachnie anemicznym modele domeny.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Domain-Driven Design i PHP

Wojciech Soczyński:
Z tego co widzę, to ta implementacja (podana w linku) traktuje obiekty encji wyłącznie jako DTO zaopatrzone tylko w gettery/settery (analizowałem UserInterface i UserManager) a to mi pachnie anemicznym modele domeny.

A czemu tak uważasz? Ten manager to tak naprawdę repozytorium, więc nic więcej niż dane z encji nie potrzebuje, a sama encja Usera wcale nie jest taka biedna w funkcjonalność.

Dodaj do tego fakt, że UserBundle ma pełnić funkcję startera - fundamentu zarządzania userami - w projektach Symfony2 i nie jest źle.
Wojciech Soczyński

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

Temat: Domain-Driven Design i PHP

Alan Gabriel Bem:
Wojciech Soczyński:
Z tego co widzę, to ta implementacja (podana w linku) traktuje obiekty encji wyłącznie jako DTO zaopatrzone tylko w gettery/settery (analizowałem UserInterface i UserManager) a to mi pachnie anemicznym modele domeny.

A czemu tak uważasz? Ten manager to tak naprawdę repozytorium, więc nic więcej niż dane z encji nie potrzebuje, a sama encja Usera wcale nie jest taka biedna w funkcjonalność.

Dodaj do tego fakt, że UserBundle ma pełnić funkcję startera - fundamentu zarządzania userami - w projektach Symfony2 i nie jest źle.

Uważam tak, ponieważ interfejs UserInterface posiada same gettery i settery :>
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Domain-Driven Design i PHP

Wojciech Soczyński:
[...] interfejs UserInterface posiada same gettery i settery :>

I rozszerza jeszcze inny interfejs, w którym masz już "biznesowe" metody :)

Więcej nie potrzeba - jak pisałem wcześniej - UserBundle i jego klasy mają być podstawą do której dodajesz funkcjonalności w docelowej aplikacji korzystającej z tego bundle'a.

edit: literówkaAlan Gabriel Bem edytował(a) ten post dnia 26.05.11 o godzinie 01:45

konto usunięte

Temat: Domain-Driven Design i PHP

Śledząc linki do swego bloga trafiłem na posta Artura, który polecał mojego bloga jako źródło wiedzy o implementacji DDD.

Właściwie na blogu jest tego niewiele, ale ostatnio przygotowaliśmy coś "większego":
http://www.bottega.com.pl/ddd-cqrs-sample-project

Implementacja co prawda w Javie na Springu z Hibernate, ale staraliśmy się nie używać żadnych specyficznych magicznych podejść. Jedynie standardy współczesnej inż. opr.

W wiki znajdziecie nieco (kilkadziesiąt stron A4) wyjaśnień co do podejmowanych decyzji i kompromisów:
http://code.google.com/p/ddd-cqrs-sample/wiki/TableOfC...
wiki zawiera linki do 3 wizualizacji w "prezi" - jedna poświęcona ogólnie DDD, druga CqRS a trzecia z nich pozwala ogarnąć zarówno całość jak i szczegóły projektu: http://prezi.com/hi2dmhfej9zu/ddd-cqrs-sample/

W repo macie przykładowy projekt oraz projekt z przykładowymi historyjkami akceptacyjnymi wg BDD.
http://code.google.com/p/ddd-cqrs-sample/source/browse...

Następna dyskusja:

Test Driven Development / C...




Wyślij zaproszenie do