SlideShare uma empresa Scribd logo
Clean Architecture
Elton Minetto
@eminetto
O que é Clean Architecture?
O que é Clean Architecture?
- https://8thlight.com/blog/uncle-bob/2012/08/13/
the-clean-architecture.html
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
Premissas
- Independente de frameworks
Premissas
- Independente de frameworks
- Testável
Premissas
- Independente de frameworks
- Testável
- Independente de UI
Premissas
- Independente de frameworks
- Testável
- Independente de UI
- Independente de Database
Premissas
- Independente de frameworks
- Testável
- Independente de UI
- Independente de Database
- Independente qualquer agente externo
Divide nosso código em 4
camadas
Clean Architecture - Elton Minetto
- Entities: representam as entidades das regras de
negócio
- Entities: representam as entidades das regras de
negócio
- Use Cases: as regras de negócio da aplicação
Clean Architecture - Elton Minetto
- Controller: adaptam e convertem os dados do
formato usado pelas entidades e use cases para
agentes externos como bancos de dados , web, etc
- 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 - Elton Minetto
Clean architecture em Go
https://www.slideshare.net/eminetto/clean-
architecture-em-go-v2
Clean architecture em PHP
No namespace entity estão nossas entidades
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
No namespace UseCase temos a definição das
interfaces dos Use Case
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
O Service.php é a implementação dos Use Case
Clean Architecture - Elton Minetto
No namespace Driver temos a camada
correspondente, neste caso os repositórios onde as
entidades serão armazenadas
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
Nos arquivos InmemRepository.php e
SqliteRepository.php temos implementações da
interface
Clean Architecture - Elton Minetto
No diretório Controller temos a implementação da
camada correspondente
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
Podemos também ter diferentes controllers, como a
linha de comando
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
Podemos facilmente testar nossos pacotes, camada
a camada
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
Premissas
Premissas
- Independente de frameworks
Premissas
- Independente de frameworks
- Testável
Premissas
- Independente de frameworks
- Testável
- Independente de UI
Premissas
- Independente de frameworks
- Testável
- Independente de UI
- Independente de Database
Premissas
- Independente de frameworks
- Testável
- Independente de UI
- Independente de Database
- Independente qualquer agente externo
Exemplo completo
https://github.com/eminetto/clean-architecture-php
Perguntas
@eminetto
http://eltonminetto.net
http://codenation.com.br

Mais conteúdo relacionado

PDF
Clean Architecture
PDF
Clean Architecture em PHP
PDF
Clean Architecture in Golang
PDF
TDC2018SP | Trilha Go - Clean architecture em Golang
PDF
Clean architecture em Go - v2
PPTX
Introducao a Clean Architecture
PDF
Clean Architecture
PDF
Clean architecture frontend
Clean Architecture
Clean Architecture em PHP
Clean Architecture in Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
Clean architecture em Go - v2
Introducao a Clean Architecture
Clean Architecture
Clean architecture frontend

Semelhante a Clean Architecture - Elton Minetto (20)

PDF
Arquitetura limpa
PPTX
TDC 2019 Clean Architeture com .net core
PDF
InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...
PDF
Arquitetura Limpa @ 32º CocoaTalks BH
PDF
TDC2017 | São Paulo - Trilha Mobile How we figured out we had a SRE team at -...
PDF
TDC2011: Arquitetura de Software Enterprise
PPTX
Clean architecture
PDF
Uma linha tênue entre arquitetura de software e o dia a dia dev
PDF
Arquitetura de Software 101
PPTX
Clean architecture em NodeJS
PDF
Arquitetura limpa
PDF
Arquitetura_de_software_e_como_descreve-la_v2
PPTX
Ddd e software architecture
PPT
O futuro do arquiteto e das arquiteturas Java Enterprise
PDF
Framework Entities na CBSoft
PDF
Macro Arquitetura de Software
PPTX
Arquitetura de Software, o que não te contam - Unipê
PPTX
Arquitetura software
PDF
Quem quer ser um arquiteto?
PDF
Qualificação MACC- Entities
Arquitetura limpa
TDC 2019 Clean Architeture com .net core
InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...
Arquitetura Limpa @ 32º CocoaTalks BH
TDC2017 | São Paulo - Trilha Mobile How we figured out we had a SRE team at -...
TDC2011: Arquitetura de Software Enterprise
Clean architecture
Uma linha tênue entre arquitetura de software e o dia a dia dev
Arquitetura de Software 101
Clean architecture em NodeJS
Arquitetura limpa
Arquitetura_de_software_e_como_descreve-la_v2
Ddd e software architecture
O futuro do arquiteto e das arquiteturas Java Enterprise
Framework Entities na CBSoft
Macro Arquitetura de Software
Arquitetura de Software, o que não te contam - Unipê
Arquitetura software
Quem quer ser um arquiteto?
Qualificação MACC- Entities
Anúncio

Mais de iMasters (20)

PPTX
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
PDF
Postgres: wanted, beloved or dreaded? - Fabio Telles
PPTX
Por que minha query esta lenta? - Suellen Moraes
PPTX
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
PDF
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
PPTX
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
PDF
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
PDF
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
PDF
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
PDF
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
PDF
Entendendo os porquês do seu servidor - Talita Bernardes
PDF
Backend performático além do "coloca mais máquina lá" - Diana Arnos
PPTX
Dicas para uma maior performance em APIs REST - Renato Groffe
PPTX
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
PDF
Quem se importa com acessibilidade Web? - Mauricio Maujor
PDF
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
PDF
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
PDF
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
PDF
Construindo aplicações mais confiantes - Carolina Karklis
PDF
Monitoramento de Aplicações - Felipe Regalgo
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
Postgres: wanted, beloved or dreaded? - Fabio Telles
Por que minha query esta lenta? - Suellen Moraes
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Entendendo os porquês do seu servidor - Talita Bernardes
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Dicas para uma maior performance em APIs REST - Renato Groffe
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
Quem se importa com acessibilidade Web? - Mauricio Maujor
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Construindo aplicações mais confiantes - Carolina Karklis
Monitoramento de Aplicações - Felipe Regalgo
Anúncio

Clean Architecture - Elton Minetto