Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Domain-Driven Design com PHP

Domain-Driven Design com PHP

Como aplicamos Domain-Driven Design (DDD, Eric Evans) com PHP, usando o framework Neos Flow na Agilize Contabilidade Online (https://www.agilize.com.br). Palestra realizada no 2º Encontro de Dev's PHP (PHP com rapadura), em Fortaleza.

Thiago Colares

October 05, 2016
Tweet

More Decks by Thiago Colares

Other Decks in Technology

Transcript

  1. Domain-Driven
    Design com PHP
    Fortaleza, Setembro – 2016
    2º Encontro de Dev's PHP

    View full-size slide

  2. Thiago Colares

    View full-size slide

  3. https://zombiecodekill.files.wordpress.com/2015/09/ddd.jpg

    View full-size slide

  4. https://www.flickr.com/photos/harquail/17179719119/sizes/l

    View full-size slide

  5. Linguagem
    ubíquia

    View full-size slide

  6. Especialistas
    do domínio

    View full-size slide

  7. Time de
    desenvol-
    vimento
    Especialistas
    do domínio

    View full-size slide

  8. Time de
    desenvol-
    vimento
    Especialistas
    do domínio
    Linguagem
    ubíqua

    View full-size slide

  9. Modelando o
    domínio

    View full-size slide

  10. https://www.safaribooksonline.com/library/view/domain-driven-design-tackling/0321125215/graphics/fminf01.jpg

    View full-size slide

  11. Value Objects

    View full-size slide

  12. Entities ou
    Value Objects?

    View full-size slide

  13. https://www.tenuz.com/wp-content/uploads/2015/04/Car-parts-1.jpg

    View full-size slide

  14. https://www.tenuz.com/wp-content/uploads/2015/04/Car-parts-1.jpg
    Aggregate
    Root
    Aggregate
    Child
    Aggregate
    Child

    View full-size slide

  15. Ciclo de vida
    dos objetos

    View full-size slide

  16. Bounded context
    (Contexto delimitado)

    View full-size slide

  17. Cliente
    Nome
    Identificador
    Cartões de Crédito
    Endereço
    Validação do Pagamento
    Validação do Cartão

    View full-size slide

  18. Cliente
    Nome
    Identificador
    Cartões de Crédito
    Endereço
    Validação do Pagamento
    Validação do Cartão
    Agendamento
    de consulta

    View full-size slide

  19. Cliente
    Nome
    Identificador
    Cartões de Crédito
    Endereço
    Validação do Pagamento
    Validação do Cartão
    Agendamento
    de consulta
    Pagamento

    View full-size slide

  20. Cliente
    Nome
    Identificador
    Cartões de Crédito
    Endereço
    Validação do Paga...
    Validação do Cartão
    Pagamento
    Cliente
    Nome
    Identificador
    Agendamento
    de consulta

    View full-size slide

  21. Shared Kernel
    Customer / Supplier
    Conformist
    Anti-Corruption Layer
    Domain Event
    Padrões para relacionar
    Bounded contexts

    View full-size slide

  22. OBRIGADO
    www.agilize.com.br
    Thiago Colares
    Fortaleza, Setembro
    2016

    View full-size slide