TDC2018SP | Trilha Go - Clean architecture em Golang
tdc-globalcode
417 views
30 slides
Aug 22, 2018
Slide 1 of 30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
About This Presentation
TDC2018SP | Trilha Go - Clean architecture em Golang
Size: 1.49 MB
Language: pt
Added: Aug 22, 2018
Slides: 30 pages
Slide Content
CLEAN ARCHITECTURE EM
GO
Elton Minetto
@eminetto
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
Premissas
-Independente de frameworks
-Testável
-Independente de UI
-Independente de Database
-Independente qualquer agente externo
Divide nosso código em 4
camadas
-Entities: representam as entidades das regras de
negócio
-Use Cases: as regras de negócio da aplicação
-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
Clean architecture em Go
No pacote entity estão nossas entidades
No pacote user encontram-se outras camadas da
arquitetura
No arquivo interface.go temos a definição das
interfaces dos Use Case e repositório, onde a
entidade vai ser armazenada
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
O service.go é a implementação dos Use Case
No diretório api temos a implementação da camada
Controller
No trecho a seguir, do api/main.go podemos ver
como usar o serviço
Podemos também ter diferentes controllers, como
linha de comando, lambdas, bots, etc.
Podemos facilmente testar nossos pacotes, camada
a camada