Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Clean Architecture - Elton Minetto

340 views

Published on

Elton Minetto - CTO, CodeNation

Em seu livro "Clean Architecture: A Craftsman's Guide to Software Structure and Design" o famoso autor Robert "Uncle Bob" Martin apresenta uma arquitetura com alguns pontos importantes como testabilidade e independência de frameworks, bancos de dados e interfaces.
Nesta apresentação vou mostrar exemplos de como aplicar estes conceitos em projetos escritos em Golang e PHP

Apresentado no InterCon 2018 - https://eventos.imasters.com.br/intercon

Published in: Software
  • Be the first to comment

Clean Architecture - Elton Minetto

  1. 1. Clean Architecture Elton Minetto @eminetto
  2. 2. O que é Clean Architecture?
  3. 3. O que é Clean Architecture? - https://8thlight.com/blog/uncle-bob/2012/08/13/ the-clean-architecture.html
  4. 4. O que é Clean Architecture? - https://8thlight.com/blog/uncle-bob/2012/08/13/ the-clean-architecture.html - https://www.amazon.com/Clean-Architecture- Craftsmans-Software-Structure/dp/0134494164
  5. 5. Premissas
  6. 6. Premissas - Independente de frameworks
  7. 7. Premissas - Independente de frameworks - Testável
  8. 8. Premissas - Independente de frameworks - Testável - Independente de UI
  9. 9. Premissas - Independente de frameworks - Testável - Independente de UI - Independente de Database
  10. 10. Premissas - Independente de frameworks - Testável - Independente de UI - Independente de Database - Independente qualquer agente externo
  11. 11. Divide nosso código em 4 camadas
  12. 12. - Entities: representam as entidades das regras de negócio
  13. 13. - Entities: representam as entidades das regras de negócio - Use Cases: as regras de negócio da aplicação
  14. 14. - Controller: adaptam e convertem os dados do formato usado pelas entidades e use cases para agentes externos como bancos de dados , web, etc
  15. 15. - Controller: adaptam e convertem os dados do formato usado pelas entidades e use cases para agentes externos como bancos de dados , web, etc - Framework & Driver: frameworks e ferramentas como bancos de dados, frameworks web, etc
  16. 16. Clean architecture em Go https://www.slideshare.net/eminetto/clean- architecture-em-go-v2
  17. 17. Clean architecture em PHP
  18. 18. No namespace entity estão nossas entidades
  19. 19. No namespace UseCase temos a definição das interfaces dos Use Case
  20. 20. O Service.php é a implementação dos Use Case
  21. 21. No namespace Driver temos a camada correspondente, neste caso os repositórios onde as entidades serão armazenadas
  22. 22. Nos arquivos InmemRepository.php e SqliteRepository.php temos implementações da interface
  23. 23. No diretório Controller temos a implementação da camada correspondente
  24. 24. Podemos também ter diferentes controllers, como a linha de comando
  25. 25. Podemos facilmente testar nossos pacotes, camada a camada
  26. 26. Premissas
  27. 27. Premissas - Independente de frameworks
  28. 28. Premissas - Independente de frameworks - Testável
  29. 29. Premissas - Independente de frameworks - Testável - Independente de UI
  30. 30. Premissas - Independente de frameworks - Testável - Independente de UI - Independente de Database
  31. 31. Premissas - Independente de frameworks - Testável - Independente de UI - Independente de Database - Independente qualquer agente externo
  32. 32. Exemplo completo https://github.com/eminetto/clean-architecture-php
  33. 33. Perguntas @eminetto http://eltonminetto.net http://codenation.com.br

×