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

[INTERCON-2017] Arquitetura Hexagonal

[INTERCON-2017] Arquitetura Hexagonal

Todo mundo fica frustrado quando demora muito mais do que deveria para entregar uma feature que era pra ser simples. É aí que surge a Arquitetura Hexagonal, também conhecida como Ports & Adapters, cujo objetivo é minimizar o trabalho de criar ou fazer modificações em um software. Essa talk irá apresentar o que é essa arquitetura, por que ela existe e como ela funciona, passando por todo o caminho que um recurso faz no software, desde seu ponto de entrada, até a persistência.

Vídeo disponível em: https://www.youtube.com/watch?v=jEhL0B70xME&

Camila Campos

October 21, 2017
Tweet

More Decks by Camila Campos

Other Decks in Programming

Transcript

  1. @camposmilaa Plataforma online Empréstimo com garantia Juros baixos ESTAMOS CONTRATANDO!!!

    www.creditas.com.br fb.com/creditasbr twitter.com/CreditasBR
  2. @camposmilaa Projeto maravilhindo Inserir mulheres em TI Workshop de Rails

    Inspiração railsgirls.com/saopaulo fb.com/railsgirls.sp twitter.com/railsgirlssp
  3. @camposmilaa Junção de comunidades 1a edição 25/03: Oficinas 2a edição

    11/11: WDSTalks bit.ly/InscricoesWDSTalks bit.ly/VakinhaWDSTalks womendevsummit.com fb.com/womendevsummit
  4. @camposmilaa “o fato é que fazer ~bagunças~ é sempre mais

    devagar do que continuar ~limpo~.” - Uncle Bob
  5. @camposmilaa independente de frameworks independente de ui independente de banco

    de dados independente de agentes externos facilmente testável
  6. @camposmilaa use cases ou interactors - o que o sistema

    faz criar pedir reembolso enviar verificar risco de fraude
  7. @camposmilaa criar pedido DADOS DE ENTRADA - dados do cliente

    - endereço de entrega - dados de pagamento FLUXO 1. cliente pede para criar pedido com os dados acima 2. sistema valida os dados 3. sistema cria pedido e determina id do pedido 4. sistema devolve o id do pedido para o cliente
  8. @camposmilaa adapters - princípio da inversão de dependência (DIP) presenter

    controler use case input port use case input port use case interactor fluxo de controle I I
  9. @camposmilaa usuário solicita algo Request model controller entidade entidade agregado

    entidade entidade use case (interactor) domain service interação
  10. @camposmilaa usuário solicita algo Request model controller entidade entidade agregado

    entidade entidade use case (interactor) domain service repositório banco persistência
  11. @camposmilaa usuário solicita algo Request model controller entidade entidade agregado

    entidade entidade use case (interactor) domain service repositório banco persistência dip
  12. @camposmilaa usuário solicita algo Request model controller entidade entidade agregado

    entidade entidade result model use case (interactor) domain service repositório banco tradução
  13. @camposmilaa usuário solicita algo Request model controller entidade entidade agregado

    entidade entidade result model use case (interactor) domain service presenter repositório banco result model
  14. @camposmilaa usuário solicita algo Request model controller entidade entidade agregado

    entidade entidade result model use case (interactor) domain service presenter repositório banco result model dip
  15. @camposmilaa usuário solicita algo usuário recebe algo Request model controller

    entidade entidade agregado entidade entidade result model use case (interactor) domain service presenter repositório banco json
  16. @camposmilaa Links bacanudos https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html https://8thlight.com/blog/uncle-bob/2011/09/30/Screaming-Architecture.html http://alistair.cockburn.us/Hexagonal+architecture http://blog.mattwynne.net/2012/05/31/hexagonal-rails-objects-values-and-hexagons/ https://spin.atomicobject.com/2013/02/23/ports-adapters-software-architecture/ http://five.agency/android-architecture-part-3-applying-clean-architecture-android/ http://tidyjava.com/clean-architecture-screaming/

    Domain Driven Rails by Yan Pritzker https://vimeo.com/106759024 Clean Architecture by Uncle Bob https://www.youtube.com/watch?v=Nltqi7ODZTM Clean Architecture and Desing by Uncle Bob https://www.youtube.com/watch?v=Nsjsiz2A9mg Hexagonal Rails by Matt Wynne https://www.youtube.com/watch?v=CGN4RFkhH2M Clean Architecture: A Craftsman's Guide to Software Structure and Design by Uncle Bob (Livro)