Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Clean architecture em Go - v2

202 visualizaciones

Publicado el

Atualização da palestra Clean Architecture em Go

Publicado en: Tecnología
  • Sé el primero en comentar

Clean architecture em Go - v2

  1. 1. CLEAN ARCHITECTURE EM GO 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
  8. 8. No pacote entity estão nossas entidades
  9. 9. No pacote user encontram-se outras camadas da arquitetura
  10. 10. No arquivo interface.go temos a definição das interfaces dos Use Case e repositório, onde a entidade vai ser armazenada
  11. 11. Nos arquivos repository_inmem.go e repository_mongodb.go temos implementações da interface que define um repositório, onde as entidades são armazenadas. Neste caso o repositório representa parte da camada Framework & Driver
  12. 12. O service.go é a implementação dos Use Case
  13. 13. No diretório api temos a implementação da camada Controller
  14. 14. No trecho a seguir, do api/main.go podemos ver como usar o serviço
  15. 15. Podemos também ter diferentes controllers, como linha de comando, lambdas, bots, etc.
  16. 16. Podemos facilmente testar nossos pacotes, camada a camada
  17. 17. pkg/user/service_test.go
  18. 18. api/handler/user_test.go
  19. 19. Exemplo completo https://github.com/eminetto/clean-architecture-go
  20. 20. Perguntas http://eltonminetto.net @eminetto http://asemanago.com.br

×