Aktywne Wpisy

xeacaex +477
Wczoraj wieczorem prawie zginąłem ‚na Sebastiana’ na krajowej 7 na wysokości jakiejś wiochy przed Kielcami. Chciałem wyprzedzić ciężarówkę, ale widziałem auto w lusterku które strasznie z----------o, pewnie lekko z 250 km/h, więc poczekałem. Gdy wyjechałem na lewy pas to ‚magicznie’ ukazało się drugie które ledwo co wyhamowało (oczywiście BMW). Nie wiem, może to moja wina, bo nie sprawdziłem lusterka pierdyliard razy, ale wiem jedno - rzygam już jazdą autem po Polsce. Na

szynszyla2018 +45
No i pospane. 3 h snu XD zajebiste. Ale jak pójdziesz do dzbana lekarza to ci powie żebyś sobie zrobił kąpiel przed snem XDDD nie wiem skąd oni tych dzbanów biorą. #lekarz #bezsennosc




Pierwszy taki przykład to jest tutaj:
https://mevelix.com/articles/laravel-cqrs-from-scratch,1
Na fajnie, spoko, tylko tak się zastanawiam czy w takich frameworkach jak CI, FuelPHP czy Koseven ma sens aż takie rozbijanie? Ja zrobiłem to tak. Każdy Command bierze tylko dane np. z $_POST i wykonuje jakieś operacje np. bazodanowe na ORM w swojej metodzie execute i mam tylko jeden Command Handler dla wszystkich Command który tylko w swojej handle obsługuje wyjątki, profilowanie i hooki np. success, failure, always itd. Command handler po prostu wywołuje metodę execute z komendy jako parametr swojej metody handle, przyjmując tylko instancje Command. Każde Query pobiera np. dane z bazy przez jakiś ORM i mam też tylko jeden główny Query Handler obsługujący wyjątki, profilowanie i hooki. Bardzo dobrze to mi się sprawdza. Żadnego overengineering.
Czy to są tylko szczegóły implementacyjne? W Laravelu inaczej się programuje niż w wymienionych tu frameworkach i pewnie to podejście rodem z tutoriali jest celowe. Ale nie chcę zbyt komplikować kodu i rozbijać na nie wiadomo ile klas. W każdym razie podejście jest bardzo ciekawe. Strasznie jestem ciekaw jak dużo programistów komplikuje sobie pracę, tworząc przeinżynierowane potworki tylko po to żeby się potem pochwalić w CV nowym fantastycznym słowem kluczowym? Co takiego konkretnego daje to że każdy Command ma być tylko zwykłą encją i ma mieć swój Command Handler to nie wiem. Nie można by tego zredukować tylko do jednej klasy Command?
#programista15k #cqrs #programowanie #php
return $command->execute();CommandHandler by design jest asynchroniczny i nie zwraca żadnych danych.
Command nie powinien zawierać metody execute. To ma być obiekt będący intencją zmiany stanu aplikacji. Po prostu fajnie nazwana klasa z bezpośrednio zadeklarowanymi polami. Nic poza tym.
@daro1: Nie mów tego nigdzie na rekrutacji :)
Na siłę możesz sobie w bazie danych utworzyć np. sekwencję i wykonywać request po następny numer. Wtedy masz identyfikator liczbowy zarezerwowany dla twojej transakcji i znasz go od razu, więc nie musisz nic zwracać z command handlera.
Biorąc jednak pod uwagę zdrowy rozsądek, to w 99% przypadków nie potrzebujesz CQRS tylko prostego CRUD-a. Na CQRS biznes musi być gotowy
@Pharos To jest niestety plaga w tej branży. Widziałem wiele systemów na których ktoś ewidentnie budował sobie CV i używał narzędzi/wzorców/architektur które były tam kompletnie z