Casos de uso Regras de negócio Banco de dados HTTP
Serviços externos Tratamento de erros Logs
Slide 5
Slide 5 text
Casos de uso
Regras de negócio
Banco de dados
HTTP
Serviços externos
Tratamento de erros
Serialização
Slide 6
Slide 6 text
Código spaghetti é
difícil de mudar
Slide 7
Slide 7 text
“
… if you're afraid to change
something it is clearly poorly
designed
- Martin Fowler
Slide 8
Slide 8 text
Como escrever código
que nos passa confiança
ao mudá-lo?
?
Slide 9
Slide 9 text
● Separação de conceitos
● Princípio da responsabilidade única
● Inversão de dependência
● Testes automatizados
Slide 10
Slide 10 text
Separação de conceitos +
Responsabilidade única
Junte o que muda pelo mesmo motivo,
separe o que muda por motivos diferentes
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
X
Fere o princípio da responsabilidade única
Slide 15
Slide 15 text
X
Fere o princípio da responsabilidade única
X
Fere a separação de conceitos
Slide 16
Slide 16 text
A parte mais importante do seu software
Arquitetura
Slide 17
Slide 17 text
Arquitetura é como as unidades do
seu software interagem
priorizando as decisões
importantes e postergando as
menos importantes
Slide 18
Slide 18 text
Arquitetura não é
organização de arquivos
Slide 19
Slide 19 text
Registro de hóspede
Slide 20
Slide 20 text
Registro de hóspede
Programa
Slide 21
Slide 21 text
Registro de hóspede
Programa
Checa documentos
Valida cartão de crédito
Aplica regras extras
Slide 22
Slide 22 text
Registro de hóspede
Programa
Checa documentos
Valida cartão de crédito
Aplica regras extras Salva os dados
Slide 23
Slide 23 text
Registro de hóspede
Checa documentos
Valida cartão de crédito
Aplica regras extras Salva os dados
Caso de uso
(aplicação)
Regras de negócio
(domínio)
Slide 24
Slide 24 text
Registro de hóspede
Checa documentos
Valida cartão de crédito
Aplica regras extras Salva os dados
Caso de uso
(aplicação)
Regras de negócio
(domínio)
Portas de entrada
Slide 25
Slide 25 text
Registro de hóspede
Checa documentos
Valida cartão de crédito
Aplica regras extras Salva os dados
Caso de uso
(aplicação)
Regras de negócio
(domínio)
Portas de entrada
Exterior
(infraestrutura)
Slide 26
Slide 26 text
Entrada
Aplicação
Domínio
Infraestrutura
X
Camadas
Slide 27
Slide 27 text
Dependa de interfaces, não implementações
Inversão de
dependência
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
Testes
automatizados
Slide 30
Slide 30 text
Aplicação
Domínio
Infraestrutura
Portas de entrada
E2E
Integration
Unit
Slide 31
Slide 31 text
Mãos na massa!
Slide 32
Slide 32 text
X
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
● Buscar produções
● Criar usuários
● Adicionar à prateleira do usuário
● Remover da prateleira do usuário