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

177 views

Published on

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

Published in: Engineering
  • Be the first to comment

Clean Architecture

  1. 1. Clean Architecture Elton Minetto @eminetto
  2. 2. 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
  3. 3. Premissas - Independente de frameworks - Testável - Independente de UI - Independente de Database - Independente qualquer agente externo
  4. 4. Divide nosso código em 4 camadas
  5. 5. - Entities: representam as entidades das regras de negócio - Use Cases: as regras de negócio da aplicação
  6. 6. - 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
  7. 7. Clean architecture em Go https://www.slideshare.net/eminetto/clean- architecture-em-go-v2
  8. 8. Clean architecture em PHP
  9. 9. No namespace entity estão nossas entidades
  10. 10. No namespace UseCase temos a definição das interfaces dos Use Case
  11. 11. O Service.php é a implementação dos Use Case
  12. 12. No namespace Driver temos a camada correspondente, neste caso os repositórios onde as entidades serão armazenadas
  13. 13. Nos arquivos InmemRepository.php e SqliteRepository.php temos implementações da interface
  14. 14. No diretório Controller temos a implementação da camada correspondente
  15. 15. Podemos também ter diferentes controllers, como a linha de comando
  16. 16. Podemos facilmente testar nossos pacotes, camada a camada
  17. 17. Premissas - Independente de frameworks - Testável - Independente de UI - Independente de Database - Independente qualquer agente externo
  18. 18. Exemplo completo https://github.com/eminetto/clean-architecture-php
  19. 19. Perguntas @eminetto http://eltonminetto.net http://codenation.com.br

×