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 in Golang

620 views

Published on

Clean Architecture in Golang

Published in: Technology

Clean Architecture in Golang

  1. 1. O que é Clean Architecture?
  2. 2. → Independente de frameworks → Testável → Independente de UI → Independente de Database → Independente qualquer agente externo
  3. 3. Divide nosso código em 4 camadas
  4. 4. → Entities: representam as entidades das regras de negócio → Use Cases: as regras de negócio da aplicação
  5. 5. → 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
  6. 6. Clean architecture em Go
  7. 7. No pacote entity estão nossas entidades
  8. 8. No arquivo interface.go temos a definição das interfaces dos Use Case e repositório, onde a entidade vai ser armazenada
  9. 9. O service.go é a implementação dos Use Case
  10. 10. 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
  11. 11. No diretório api temos a implementação da camada Controller e também de mais uma parte da camada Framework & Driver, nos handlers
  12. 12. No trecho a seguir, do api/main.go podemos ver como usar o serviço
  13. 13. Podemos facilmente testar nossos pacotes, camada a camada
  14. 14. pkg/user/service_test.go
  15. 15. api/handler/user_test.go
  16. 16. Perguntas http://eltonminetto.net @eminetto http://asemanago.com.br

×