pegando carona no command bus

Download Pegando carona no Command Bus

If you can't read please download the document

Upload: bruno-neves-menezes

Post on 13-Apr-2017

613 views

Category:

Technology


3 download

TRANSCRIPT

Pegando carona no Command Bus

@[email protected]

Bruno Neves

Pegando carona no Command Bus

Alto acoplamento

Pegando carona no Command Bus

Baixa coeso

Pegando carona no Command Bus

Reusabilidade? (risos)

Pegando carona no Command Bus

Service Layer!

Pegando carona no Command Bus

Fat model, skinny controller

Pegando carona no Command Bus

Fachada para as operaes que o sistema realiza

Pegando carona no Command Bus

Diminui o acoplamento com o framework

Pegando carona no Command Bus

Separa o negcio das camadas de infraestrutura

Pegando carona no Command Bus

Pode ser executado por um comando agendado na crontab, por um listener, por uma requisio http e etc.

Pegando carona no Command Bus

Excesso de atividades que devem ser executadas antes e depois do objetivo principal

Pegando carona no Command Bus

Repetio das mesmas rotinas na maioria dos servios (log, transao, commit, rollback)

Pegando carona no Command Bus

Doloroso para testar

Pegando carona no Command Bus

Single Responsability

Pegando carona no Command Bus

Commands!

Pegando carona no Command Bus

Mensagem

Pegando carona no Command Bus

Representa a inteno do usurio

Pegando carona no Command Bus

Nome no imperativoPurchase Album

Pegando carona no Command Bus

Data Transfer Object

Pegando carona no Command Bus

No possui comportamento

Pegando carona no Command Bus

Beleza! Mas quem vai executar?

Pegando carona no Command Bus

Command Handler!

Pegando carona no Command Bus

Executa o command e apenas isso

Pegando carona no Command Bus

1:1

Um Command possui apenas um Handler

Um Handler possui apenas um Command

Pegando carona no Command Bus

Vrios problemas permanecem...

Pegando carona no Command Bus

Command Bus!

Pegando carona no Command Bus

Possibilita a execuo de rotinas ANTES e APS a execuo do Command propriamente dito

Pegando carona no Command Bus

Middlewares!

Pegando carona no Command Bus

Validator Middleware?

Pegando carona no Command Bus

Transaction Middleware?

Pegando carona no Command Bus

Logging Middleware?

Tactician

http://tactician.thephpleague.com/

> composer require league/tactician

No Framework

Pegando carona no Command Bus

Menos dependncias!

Pegando carona no Command Bus

Testabilidade

Pegando carona no Command Bus

Altamente coeso

Pegando carona no Command Bus

Agnstico de framework

Pegando carona no Command Bus

Domnio isolado de outras camadas

Pegando carona no Command Bus

Fluxo padronizado. Excelente para equipes!

Pegando carona no Command Bus

Interface nica: handle()

Pegando carona no Command Bus

CQSCommand Query Separation

Pegando carona no Command Bus

Ferramentas similares

BROADWAY

LiteCQRS

SimpleBUS

Pegando carona no Command Bus

Assuntos relacionados

DDD CQRS Domain Events CQS Event Sourcing Hexagonal Architecture

Pegando carona no Command Bus

Referncias

http://tactician.thephpleague.com/http://php-and-symfony.matthiasnoback.nl/2015/01/a-wave-of-command-buses/https://www.reddit.com/r/PHP/comments/29a6qz/what_am_i_missing_with_this_whole_command_bus/http://whitewashing.de/2012/08/18/oop_business_applications__command_query_responsibility_seggregation.htmlhttp://www.sitepoint.com/command-buses-demystified-a-look-at-the-tactician-package/http://pt.slideshare.net/rosstuck/command-bus-to-awesome-townhttp://pt.slideshare.net/rosstuck/models-and-service-layers-hemoglobin-and-hobgoblinshttp://shawnmc.cool/command-bus

Pegando carona no Command Bus

Imagens

https://safetycompass.files.wordpress.com/2013/08/school-bus.jpghttp://martinfowler.com/eaaCatalog/ServiceLayerSketch.gifhttp://allchristiannews.com/wp-content/uploads/2013/05/victory.jpghttp://imguol.com/c/entretenimento/d7/2016/02/03/mc-bin-laden-comeca-2016-tranquilo-e-favoravel-faco-hang-loose-para-os-recalcados-1454507431518_956x500.jpghttp://reactionface.net/reactionface/images/original/119.jpg?new=1http://staples.vteximg.com.br/arquivos/ids/200696-1000-1000/TCOTI0754.jpghttp://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/01/1453218734middleware-pipeline.pnghttp://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2016/01/1453218740command-pattern.pnghttp://www.quickmeme.com/img/6b/6b79a252a3471c9566ecb540f4013dbcaba6361d4ae17cf2209acd183dac1268.jpg

Pegando carona no Command Bus

Obrigado!