Wpis z mikrobloga

#php #symfony #symfony3 proszę o #codereview mojej próby stworzenia projektu w oparciu o Hexagonal Architecture i jednocześnie zrozumienia tej koncepcji. W przypadku encji poszedłem na skróty, ale z tego co oglądałem na konferencjach, to zdarzają się takie decyzje, które ułatwiają pracę (np Kris Wallsmith). Moja encja jest jednocześnie tą z domeny oraz z bazy danych. Jeśli z kodu wynika Wam, że czegoś nie rozumiem lub źle rozumiem to też proszę o wyjaśnienie :)
Kod: https://github.com/masterix/wiosna
  • 15
@masterix: patrzyłem w kod - nie ogarniam. Poczytałem jakieś pół godziny o implementacjach tej architektury w PHP i to za mało czasu, żeby ogarnąć co i jak. Tym bardziej, że nigdy nie pisałem niczego w oparciu o DDD.
@masterix: nie nazwałbym tego co robisz architekturą heksagonalną. Brak wstrzykiwania zależności by móc nimi żonglować (a nam tym polega ta architektura, wyciągasz bloczek "wolny MySQL" i wkładasz za niego "szybki Elasticsearch"), beznadziejnie zaimplementowany CQRS (to nawet nie jest CQRS bo nie ma literki Q, nie ma literki C, pewnie nie ma również R i S, chyba, że zmienna $commandBus jest tylko z nazwy), brak separacji zmiennych (modyfikator publiczny, kiedy można dać
@Mortale: tak jak pisałem, nie jest to takie czyste HA. Chciałem wziąć część elementów, ale widocznie rozminąłem się z niektórymi rzeczami. Nie znalazłem przykładu, który by mnie bardziej nakierował jak to spiąć. Każdy przykład robił to inaczej, często były to tylko fragmenty, a nie pełne aplikacje. Dzięki za uwagi, przeanalizuję.
@Mortale: Widziałeś/czytałeś może książkę "Domain-Driven Design in PHP". Tam jest implementacja jeszcze prostsza wg mnie, nazwana również heksagonalną. Choć fakt, że tam prosto podmieniali np MySQL na Redis. Żeby to samo osiągnąć powinienem z EntryRepository zejść jeszcze niżej, już na poziom frameworka i tam konkretną implementację stworzyć - dobrze to rozumiem?