2. Hello World!
Rafael Capuano
Desenvolvedor back-end desde 2011 (há 4 anos
na Praxio)
Um apaixonado por programação, fã de futebol,
movido pelo desafio de viver...
https://medium.com/@rafacapuano
5. • Separação de responsabilidades
• Independência de frameworks, bancos de
dados, UI ou qualquer agente externo
• Redução do custo de mudança
• Código testável
• Facilidade para entender o que o sistema faz
5
8. 8
• Popularizado por Robert C. Martin (Uncle Bob)
• Unificação dos conceitos arquiteturais já
existentes
• O sistema é visto como um conjunto de
camadas que interagem seguindo “The
Dependency Rule”
10. “The outer circles are
mechanisms. The inner
circles are policies”
10
Uncle Bob
“This rule (The
Dependency Rule) says
that source code
dependencies can only
point inwards”
15. • Descrevem o que o sistema faz
• Concentram as regras de negócio da aplicação
• Definido como um conjunto de etapas
(interações) para se alcançar o objetivo
• Ao escrever as classes, devemos dar atenção
ao Single Responsability Principle do SOLID
15
17. • Converte dados do Use Case para agentes
externos (como a Web, por exemplo) e vice-
versa
• Composto por componentes MVC já
conhecidos, como Controllers e Views, e os
Repositórios para acesso ao banco de dados
• O código deve ser o mais simples possível, sem
lógica de negócio
17
21. Dependency Inversion
• A comunicação entre
as camadas deve se
dar por abstrações
(interfaces)
Data Transfer Objects
• Dados devem ser
transferidos entre as
camadas no modelo
adequado para elas
21
22. Não existe bala de prata;
Como qualquer conceito, você
pode adaptá-lo à sua realidade,
mas cuidado para não que
quebrar o princípio de
independência entre as camadas
do seu projeto.
Na dúvida, siga o SOLID, converse
com o time e acredite em você!
22