Clean Architecture in Golang

eminetto 1,450 views 27 slides Apr 21, 2018
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

Clean Architecture in Golang


Slide Content

O que é Clean
Architecture?

→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 arquivo interface.go temos a definição das
interfaces dos Use Case e repositório, onde a
entidade vai ser armazenada

O service.go é a implementação dos Use Case

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

No diretório api temos a implementação da camada
Controller e também de mais uma parte da camada
Framework & Driver, nos handlers

No trecho a seguir, do api/main.go podemos ver
como usar o serviço

Podemos facilmente testar nossos pacotes, camada
a camada

pkg/user/service_test.go

api/handler/user_test.go

Perguntas
http://eltonminetto.net
@eminetto
http://asemanago.com.br