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

Do SOLID a uma Arquitetura Hexagonal via Devcon...

Do SOLID a uma Arquitetura Hexagonal via Devconf(Opensanca)

Alexandre Aquiles, aborda do SOLID a uma Arquitetura Hexagonal: uma história de transformação.

Sinopse:

Alexandre Aquiles irá contar a história de transformação de um código ruim em um código mais fácil de entender e modificar. As mentoras dessa transformação serão as 5 letrinhas do acrônimo SOLID. E nosso ponto de chegada será uma Arquitetura Hexagonal!

No meio do caminho, analisaremos os trade-offs de cada uma das etapas de transformação, pensando sobre os prós e contras de cada uma das letrinhas do SOLID.

Opensanca

May 27, 2023
Tweet

More Decks by Opensanca

Other Decks in Programming

Transcript

  1. ou

  2. maneiras de agrupar código ao redor de mudanças abstrações para

    flexibilidade uso bom de subtipos separar detalhes técnicos de negócio Representação em código da linguagem de negócio de maneira consistente S. O. L. I. D.
  3. SOLID DICAS SOLDI? , Robert C. Martin, 2002 Agile Software

    Development: Principles, Patterns and Practices
  4. SINGLE RESPONSIBILITY Coesão (2019) This Banana Was Duct-Taped to a

    Wall. It Sold for $120,000. , Glenn Vanderburg, 2011 Cohesion
  5. SINGLE RESPONSIBILITY Coesão (2019) This Banana Was Duct-Taped to a

    Wall. It Sold for $120,000. Ghost, o outro lado da vida (1990) , Glenn Vanderburg, 2011 Cohesion
  6. Ouça seus imports , Steve Freeman & Nat Pryce, 2009

    GOOS SINGLE RESPONSIBILITY PRINCIPLE
  7. Ouça seus imports , Steve Freeman & Nat Pryce, 2009

    GOOS SINGLE RESPONSIBILITY PRINCIPLE
  8. Ouça seus imports , Steve Freeman & Nat Pryce, 2009

    GOOS SINGLE RESPONSIBILITY PRINCIPLE
  9. Ouça seus imports , Steve Freeman & Nat Pryce, 2009

    GOOS SINGLE RESPONSIBILITY PRINCIPLE
  10. Ouça seus imports , Steve Freeman & Nat Pryce, 2009

    GOOS SINGLE RESPONSIBILITY PRINCIPLE
  11. Ouça seus imports , Steve Freeman & Nat Pryce, 2009

    GOOS SINGLE RESPONSIBILITY PRINCIPLE
  12. S

  13. S D

  14. D

  15. D O

  16. LISKOV SUBSTITUTION Herança? Design Patterns, GoF, 1995: Favoreça composição à

    herança. Effective Java, Joshua Bloch, 2001: Item 14: Prefira composição à herança.
  17. LISKOV SUBSTITUTION Herança? Design Patterns, GoF, 1995: Favoreça composição à

    herança. Effective Java, Joshua Bloch, 2001: Item 14: Prefira composição à herança.
  18. LISKOV SUBSTITUTION Herança? Design Patterns, GoF, 1995: Favoreça composição à

    herança. Effective Java, Joshua Bloch, 2001: Item 14: Prefira composição à herança. TÉCNICAS (milenares)!
  19. SINGLE RESPONSIBILITY CONTRAPONTOS Nome confuso: "única" pode levar a granularidade

    muito fina, várias classes com só um método Agrupar código ao redor da mudança
  20. SINGLE RESPONSIBILITY CONTRAPONTOS Nome confuso: "única" pode levar a granularidade

    muito fina, várias classes com só um método Conceitos vagos: responsabilidade, coesão, agrupar ao redor de mudança Agrupar código ao redor da mudança
  21. DEPENDENCY INVERSION CONTRAPONTOS Proliferação de Interfaces: muitas com apenas uma

    implementação e o sufixo "Impl" Separar negócio de detalhes de implementação por meio de abstrações
  22. OPEN CLOSED CONTRAPONTOS Flexibilidade desnecessária: tentando antecipar o futuro Extensibilidade

    apenas nas fronteiras do sistema - Ted Kaminsky Flexibilidade por meio de pontos de extensão
  23. INTERFACE SEGREGATION CONTRAPONTOS A raiz do problema é uma falha

    de coesão Minimizar superfície de contato
  24. INTERFACE SEGREGATION CONTRAPONTOS A raiz do problema é uma falha

    de coesão Útil apenas quando você não pode alterar o código e tem que se conformar Minimizar superfície de contato
  25. Desbravando SOLID MANDE DM no Twitter para um cupom de

    desconto! Práticas avançadas para códigos de qualidade em Java moderno https://www.casadocodigo.com.br/ products/livro-desbravando-solid