O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Clean Architecture

307 visualizações

Publicada em

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

Publicada em: Engenharia
  • Seja o primeiro a comentar

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

×