Wpis z mikrobloga

Cześć, mogę prosić o code review i porady dotyczące clean architecutre? Próbuję opanować hexagonal architecutre na fronice (typescript + nuxt js) i backendzie (symfony).

Głównym zdaniem aplikacji będzie obsługa czatu/video rozmów i kalendarza spotkań, coś jak w teams. Jest to początkowy etap, aktualnie jest zaimplementowany tylko globalny chat i zastanawiam się czy dalszy development w tym kierunku ma sens.

github

#php #javascript #symfony #typescript #vuejs #programowanie
  • 3
  • Odpowiedz
@mat89c: Wygląda całkiem dobrze. Poszedłeś w stronę Vertical Slice Architecture - umieściłeś kontrolery w bounded contekście. Ja osobiście wolę jednak mieć kontrolery w osobnym kontekście. Mam wtedy src/UI/Rest i src/UI/Web, czyli kontrolery traktuję jako część interfejsu użytkownika, która składa polecenia do kupy i wrzuca na busa. Niemniej, to mi się wydaje kwestią preferencji.
Jedną rzecz mógłbyś rozważyć - w obiektach DTO zamiast geterów używać bezpośrednio składowych. Wprowadzono readonly nie bez powodu.
  • Odpowiedz
@mat89c: A jedną rzecz zauważyłem jeszcze. To też jest dyskusyjne, ale walidację Commandów przeniósłbym do kontrolera. W handlerze poleceń nie powinny się znaleźć wadliwe obiekty poleceń. Zobacz np, że będziesz miał duże problemy w przypadku asynchornicznych handlerów - jak poinformujesz usera o błędzie? Wielu programistów poleca walidację w handlerach, ale ja uważam, że obiekt polecenia jest kontraktem między warstwą UI oraz aplikacji. Aplikacja mówi: wypełnij taki obiekcik zgodne z wytycznymi, to
  • Odpowiedz