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

[TDCSãoPaulo 2018] Arquitetura Hexagonal

[TDCSãoPaulo 2018] 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.

Apresentado no TDC São Paulo e no TDC Porto Alegre (2018) - Trilha Ruby
Mais informações no link: http://www.thedevelopersconference.com.br/tdc/2018/saopaulo/trilha-ruby
http://www.thedevelopersconference.com.br/tdc/2018/portoalegre/trilha-ruby

Camila Campos

July 21, 2018
Tweet

More Decks by Camila Campos

Other Decks in Programming

Transcript

  1. @camposmilaa • Faço uns códigos na Creditas • Organizo o

    Rails Girls São Paulo • Organizo o Women Dev Summit • Tô no twitter como @camposmilaa CAMILA Campos @camposmilaa
  2. @camposmilaa Plataforma online Empréstimo com garantia Juros baixos pra você

    <3 creditas.com.br @CreditasBR vagas.creditas.com.br
  3. @camposmilaa Projeto maravilhindo Inserir mulheres em TI Workshop de Rails

    Inspiração railsgirls.com.br fb.com/railsgirls.sp twitter.com/railsgirlssp
  4. @camposmilaa independente de frameworks independente de ui independente de banco

    de dados independente de agentes externos facilmente testável
  5. @camposmilaa o que o sistema faz (use cases) criar pedir

    reembolso enviar verificar risco de fraude
  6. @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
  7. @camposmilaa princípio da inversão de dependência presenter controller use case

    interactor fluxo de controle use case output port use case input port I I
  8. @camposmilaa user requests resource request model controller entity entity aggregate

    entity entity use case domain service repository database persistência
  9. @camposmilaa user requests resource request model controller entity entity aggregate

    entity entity use case domain service repository database persistência dip
  10. @camposmilaa user requests resource request model controller entity entity aggregate

    entity entity result model use case domain service repository database tradução
  11. @camposmilaa user requests resource request model controller entity entity aggregate

    entity entity result model use case domain service presenter repository database result model
  12. @camposmilaa user requests resource request model controller entity entity aggregate

    entity entity result model use case domain service presenter repository database result model dip
  13. @camposmilaa user requests resource user gets resource back request model

    controller entity entity aggregate entity entity result model use case domain service presenter repository database json
  14. @camposmilaa Links legais (além dos livros citados) Clean Architecture -

    Uncle Bob https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html Screaming Architecture - Uncle Bob https://8thlight.com/blog/uncle-bob/2011/09/30/Screaming-Architecture.html Hexagonal Architecture - Alistair Cockburn http://alistair.cockburn.us/Hexagonal+architecture Hexagonal Rails - Matt Wynne http://blog.mattwynne.net/2012/05/31/hexagonal-rails-objects-values-and-hexagons/ Domain Driven Rails - Yan Pritzker https://vimeo.com/106759024 Clean Architecture - Uncle Bob https://www.youtube.com/watch?v=Nltqi7ODZTM Clean Architecture and Design - Uncle Bob https://www.youtube.com/watch?v=Nsjsiz2A9mg Hexagonal Rails - Matt Wynne https://www.youtube.com/watch?v=CGN4RFkhH2M