Eventy | Wydarzenia
Jest to kolejny świetny sposób na uporządkowanie naszego kodu, dokonanie refaktoryzacji oraz odpowiedniego sprzątania w naszym projekcie . Po prostu wykorzystanie potęgi eventów.
Na czym polega?
Bardzo prosta sprawa; odpalasz wydarzenie i wszyscy którzy są nim zainteresowani wezmą udział - wykonają odpowiednie procedury związane z odpalonym eventem .
Zastosowanie
Szczególnie przydatne i wręcz intuicyjne jest zastosowanie tego w sytuacji, w której dany core logiki niesie za sobą drugoplanowe i trzecioplanowe akcje, które również muszą być wykonane. Warto wtedy rozważyć wykorzystanie tej techniki refaktoryzacji . Szczególnie jeśli używasz frameworka który dostarcza ci odpowiednich narzędzi.
Przykładem takiego procesu może być rejestracja, gdzie akcją poboczną do wykonania jest wysłanie wiadomości email. Jednak dla jednej rzeczy zazwyczaj nie warto się w to babrać. Zasada KISS (Keep It Simple, Stupid) idealnie tutaj pasuje. Jednak gdy tych akcji masz wiele... warto rozważyć .
Stosowanie tej metody również wiążę się z podążaniem za SRP. Pozwala elegancko rozdzielić odpowiedzialność w kodzie który zazwyczaj jest połączony choć nie powinien.
Gdzie wyzwalać Eventy?
Możesz to robić bez przeciwwskazań w kontrolerach. Jednak nie do końca jest to eleganckie rozwiązanie. Jest całkiem w porządku, jednak rozważ robienie tego w modelach .
Zalety
Poszczególne eventy mogą być zamknięte we własnych klasach które pozwolą nam na enkapsulację całego wydarzenia i wszystkich danych z nim związanych . Natomiast klasy nasłuchujące mają tylko i wyłącznie jedną odpowiedzialność - super !
Eventy w Laravelu
Warto wspomnieć, że Laravel ma gotowy cały system eventowy. Co więcej, są również one bardzo rozbudowane. Dla przykładu mogą być rozgłaszane (broadcast) lub kolejkowane (queue)...
Warto korzystać !
Wada
Niestety wadą tutaj jest fakt, że ciężej "wejść" w ten system. Jakkolwiek kod wyglądał przed zastosowaniem tej techniki - widziałeś od razu wszystko, mogłeś łatwo przeanalizować kod (szczególnie jak został podzielony na metody). Mogłeś od razu zrozumieć, co tutaj się wyrabia.
Natomiast teraz by wszystkiego się dowiedzieć, wszystko zrozumieć, wszystko sobie poukładać trzeba bardziej poszperać w kodzie...
Jednak pamiętaj, że możesz zrobić wiele rzeczy, by zredukować tę wadę do minimum . Dla przykładu zastosowanie adnotacji w kodzie, przykład:
/**
* Register a user.
*
* @event App\Events\UserRegistered
*/
Podsumowanie
Stosowanie eventów to świetny sposób na refaktoryzację . Daje nam to bardzo wiele. Jednak używaj tej techniki z rozwagą, nie staraj się nagle wszędzie wyzwalać eventów i robić tonę klas nasłuchujących... Przede wszystkim myśl, rozważaj i Keep It Simple, Stupid .
Kończąc
Dziękuję ci za lekturę tego artykułu i zapraszam cię do komentowania, udostępniania i ogarnięcia innych moich artykułów . Szczególnie dotyczących refaktoryzacji. Wszystkie tematy z tym związane znajdziesz w kategorii "Refaktoryzacja".
A tym czasem życzę ci dobrego dnia, bywaj !