Aktywne Wpisy

wykop +210
W związku z prawomocnym wyrokiem Sądu Apelacyjnego w Warszawie publikujemy przeprosiny na Stronie Głównej serwisu. Nie zgadzamy się z tym orzeczeniem, ale w pełni respektujemy obowiązki, które nałożył na nas sąd.
Wyjaśnienie sprawy:
Przyczyną postępowania były dwa znaleziska opublikowane przez użytkowników Wykopu, zawierające linki do artykułów zamieszczonych na portalu INNPoland.pl. Wykop.pl nie był więc źródłem zakwestionowanych materiałów – udostępniono je wyłącznie w formie odnośników przez użytkowników, wraz z ich komentarzami.
Co istotne, redakcja INNPoland.pl
Wyjaśnienie sprawy:
Przyczyną postępowania były dwa znaleziska opublikowane przez użytkowników Wykopu, zawierające linki do artykułów zamieszczonych na portalu INNPoland.pl. Wykop.pl nie był więc źródłem zakwestionowanych materiałów – udostępniono je wyłącznie w formie odnośników przez użytkowników, wraz z ich komentarzami.
Co istotne, redakcja INNPoland.pl
marian-pxzz +637





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
O matko. Aż mi się przypomniał 2012, jak zaczynałem programować, kohana 3.1, hmvc, aż łezka się kręci.
Ale żeby ktoś to w 2023 używał to nie wiem
Niestety zbyt wielu. Cała nasza branża jest przeżarta przekomplikowanymi rozwiązaniami, zainspirowanymi jakimiś kursami, prezentacjami lub artykułami. W rzeczywistości większość tych aplikacji nie potrzebuje niczego poza bazą relacyjną i "starym, dobrym CRUD-em". No ale tym nie nakarmisz swojego
klasa albo przechowuje dane albo coś robi jest dla mnie bardzo słuszna i upraszcza zrozumienie kodu.
Z tego co zrozumiałem w twoim przypadku Command przechowuje dane a potem jeszcze na nich operuje, co komplikuje kod.
Ofc klasa która "coś robi" czyli zazwyczaj "service" może
Czasami opieranie wszystkiego, zwłaszcza CRUD encji o CQRS nie ma sensu, a najchętniej darowałbym sobie używanie encyklopedycznego "Query" (mowa oczywiście tylko o języku PHP), gdy mamy jednocześnie używamy ORM.
Może opowiem, w jaki sposób ja tego
<?php
class
Nie znam tego frameworka ale widzę, że operuje na statycznych klasach zamiast DI.
To nie najlepszy pomysł, nie widać zależności nie da się ich podmieniać do testów.
Generalnie tak jakbyś jechał na globalach albo singletonie.
Nie wiem czy to kwestia frameworka czy tego jak go używasz ale w cywilizowanym frameworku to wygląda tak: