SlideShare uma empresa Scribd logo
CLean
ArchitectureAprendendo a aplicar no Front-end
Desenvolvedora front-end há cinco anos,
formada em Design Gráfico e fã de Star Wars.
Twitter e Medium: EveliseVazquez
Github: @evelisee
Evelise Vazquez
“Nossas dúvidas são traidoras e nos
fazem perder o que, com frequência,
poderíamos ganhar, por simples medo de
arriscar.”
—WILLIAM SHAKESPEARE
● Avanço das responsabilidades do front-end
● Projetos de larga escala e complexidade
● Projetos de longa duração e de repetidas
manutenções
Por que usar uma arquitetura clean no
frontend?
CONCEITO
De onde vem a base para começar?
Cebola
FRAMEWORKS
INTERFACE ADAPTERS
APPLICATION BUSINESS
ENTERPRISE BUSINESS RULES
WORKFLOW
FRAMEWORKS
& DRIVES
01
As camadas que não dependem de itens
externos ou onde algumas das vezes não
temos acesso ao código.
Ex.: API’S back-end ou até mesmo os
components.
1ª camada
INTERFACE ADAPTERS
02
Finalidade da camada: converter os dados
de forma acessível entre meu useCase e meu
component.
2ª Camada
Passa os dados das
requisições dos
components para as
regras de negócio
serem tratadas.
Controllers
Passa os dados do
retorno de API’s para as
regras de negócio.
(Geralmente request de
API’s de back-end)
Repository
Controller Repository
APPLICATION BUSINESS
03
Finalidade da camada: regras de negócio!
Alterações nas camadas externas não devem
afetar essa camada.
3ª Camada
Recebe informações
da controller, trata o
que deve ser
manipulado e passa
para a próxima
camada (que é o
repository).
Use Cases
São classes auxiliares
que transformam os
dados de uma model
para a viewModel ou
EntityModel
Mappers
Use Case
Mapper
ENTERPRISE BUSINESS RULES
04
Finalidade da camada: encapsular
as entidades (nossos models!)
Menor possibilidade de mudança!
4ª camada
Classes que mantém
as entidades do
nosso sistema.
Entities
Entity
Como fazer funcionar?
Fluxo de Ida
Preciso de uns dados
para preencher minha
tabela
Vou repassar sua
mensagem para o
UseCase
Preciso validar o que
você me pediu e já vou
passar para o
repository
Vou buscar no
back-end!
Component Controller Use Case Repository
Fluxo de Volta
Recebi um response
do back-end!
Vou validar os dados
que recebi e
encaminhar para o
controller
Vou encaminhar seu
retorno para o
component
Vou mostrar na minha
tabela!
Repository Use Case Controller Component
E a estrutura de pastas?
Presentation
Layer
Core Layer Data Layer
Alguma dúvida?
Dataflow do clean
iMasters - Introdução ao clean architecture
Clean Architecture - Leandro Mancini
Carbon - Prints de Código
Boas práticas e nomes das camadas
Referências

Mais conteúdo relacionado

Semelhante a Clean architecture frontend

Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal Rails
Luiz Costa
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
Michael Costa
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
Eric Gallardo
 
Aula1
Aula1Aula1
Aula1
mentrixmax
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Luiz Costa
 
Projetando uma Arquitetura Expressiva
Projetando uma Arquitetura ExpressivaProjetando uma Arquitetura Expressiva
Projetando uma Arquitetura Expressiva
Bruno Neves Menezes
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
anybalrocha
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
rafaelberlanda
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Taller Negócio Digitais
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
Opakus - Soluções Inteligentes
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
guest489a65e
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
Rodolfo Fadino Junior
 
Aop Aspect J 1.5.4
Aop Aspect J 1.5.4Aop Aspect J 1.5.4
Aop Aspect J 1.5.4
Diego Pacheco
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
Fábio Rosato
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
Vinicius Quaiato
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
Vinicius Quaiato
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
gustavobeavis
 
Iniciando com realm
Iniciando com realmIniciando com realm
Iniciando com realm
Leonardo Turbiani
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
leopp
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Saulo Arruda
 

Semelhante a Clean architecture frontend (20)

Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal Rails
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Aula1
Aula1Aula1
Aula1
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Projetando uma Arquitetura Expressiva
Projetando uma Arquitetura ExpressivaProjetando uma Arquitetura Expressiva
Projetando uma Arquitetura Expressiva
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Aop Aspect J 1.5.4
Aop Aspect J 1.5.4Aop Aspect J 1.5.4
Aop Aspect J 1.5.4
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
 
Iniciando com realm
Iniciando com realmIniciando com realm
Iniciando com realm
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Clean architecture frontend