SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingVMware Tanzu
 
Clean architecture
Clean architectureClean architecture
Clean architectureandbed
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
Introducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineIntroducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineVMware Tanzu
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3Dmitry Skaredov
 
Hexagonal architecture - message-oriented software design
Hexagonal architecture  - message-oriented software designHexagonal architecture  - message-oriented software design
Hexagonal architecture - message-oriented software designMatthias Noback
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean ArchitectureFlavius Stef
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaEdureka!
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureMateus Prado
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesChris Richardson
 
The Secrets of Hexagonal Architecture
The Secrets of Hexagonal ArchitectureThe Secrets of Hexagonal Architecture
The Secrets of Hexagonal ArchitectureNicolas Carlo
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean ArchitectureBadoo
 
Introduction to Service Virtualization
Introduction to Service VirtualizationIntroduction to Service Virtualization
Introduction to Service VirtualizationCA Technologies
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design PrinciplesAndreas Enbohm
 

Was ist angesagt? (20)

Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
Introducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineIntroducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring Statemachine
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3
 
Hexagonal architecture - message-oriented software design
Hexagonal architecture  - message-oriented software designHexagonal architecture  - message-oriented software design
Hexagonal architecture - message-oriented software design
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | Edureka
 
Solid principles
Solid principlesSolid principles
Solid principles
 
MVVM
MVVMMVVM
MVVM
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
 
The Secrets of Hexagonal Architecture
The Secrets of Hexagonal ArchitectureThe Secrets of Hexagonal Architecture
The Secrets of Hexagonal Architecture
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Introduction to Service Virtualization
Introduction to Service VirtualizationIntroduction to Service Virtualization
Introduction to Service Virtualization
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design Principles
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 

Ähnlich wie Clean architecture frontend

TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal RailsLuiz 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 MVCMichael Costa
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
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 LegadoLuiz Costa
 
Projetando uma Arquitetura Expressiva
Projetando uma Arquitetura ExpressivaProjetando uma Arquitetura Expressiva
Projetando uma Arquitetura ExpressivaBruno 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 portaisrafaelberlanda
 
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 2016Taller Negócio Digitais
 
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 MVCguest489a65e
 
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 CarlosRodolfo Fadino Junior
 
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 microservicesFábio Rosato
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_jsgustavobeavis
 

Ähnlich wie Clean architecture frontend (20)

JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
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
 

Clean architecture frontend