Izabela Guerreiro
Arquitetura
Limpa
Izabela Guerreiro
Desenvolvedora Backend
izaguerreiro
izaguerreiro
/in/izabela-dos-santos-guerreiro/
www.izaguerreiro.me
Quem sou eu?
AGENDA
Arquitetura Limpa
Organização de
projeto
01
02
03
04
Bora pro código
Conclusão
Arquitetura Limpa
01
"Uma boa arquitetura deve possibilitar que o sistema nasça como
monolito, seja implantado em um único arquivo e, então cresça
como um conjunto de unidades independentemente implantáveis,
incluindo serviços independentes e/ou microsserviços. Mais
tarde, com as mudanças, deve permitir a reversão dessa
progressão e o retorno ao estado monolito."
Robert C. Martin
● Primeira publicação no post do Uncle Bob em 2012
● Primeira publicação do livro em 2017
● Principal objetivo separação de responsabilidade
● Princípios SOLID
Arquitetura Limpa
● Independência de framework
● Testabilidade
● Independência da UI
● Independência de banco de dados
● Independência de qualquer agência externa
Principais características
Organização de projeto
02
● A mais simples abordagem de design
● Segundo Martin Fowler, é uma boa maneira de começar
● Maneira rápida de fazer funcionar sem muita complexidade
Desvantagens:
● Quando o software escala e ganha complexidade pode demandar a criação de mais
camadas
● As camadas não dizem nada sobre o domínio do negócio
● A camada de web pode se comunicar diretamente com a camada data
Pacote por camada
Pacote por recurso
● Um único pacote
● Pacote com base nos recursos relacionados ao domínio
● Potencialmente mais fácil encontrar o código
● OBS: Nenhum item fora do pacote pode acessar as informações sem passar pela View
(Controller)
Portas e adaptadores
● Separada entre dentro (domínio) e fora (infraestrutura)
● Dentro: contém tudo que é relacionado ao domínio
● Fora: contém as interações externas (UI, banco de dados, etc..)
● Principal regra é o que está fora depende do que está dentro e nunca o contrário
Pacote por componente
● Abordagem híbrida para todas as descritas anteriormente
● Objetivo as responsabilidade um componente em um único pacote
● Somente uma entrada para o componente
Bora pro código
03
Conclusão
04
CREDITS: This presentation template was created by Slidesgo, including
icons by Flaticon, and infographics & images by Freepik.
Please keep this slide for attribution.
That's all folks!

Arquitetura limpa

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
    "Uma boa arquiteturadeve possibilitar que o sistema nasça como monolito, seja implantado em um único arquivo e, então cresça como um conjunto de unidades independentemente implantáveis, incluindo serviços independentes e/ou microsserviços. Mais tarde, com as mudanças, deve permitir a reversão dessa progressão e o retorno ao estado monolito." Robert C. Martin
  • 6.
    ● Primeira publicaçãono post do Uncle Bob em 2012 ● Primeira publicação do livro em 2017 ● Principal objetivo separação de responsabilidade ● Princípios SOLID Arquitetura Limpa
  • 7.
    ● Independência deframework ● Testabilidade ● Independência da UI ● Independência de banco de dados ● Independência de qualquer agência externa Principais características
  • 9.
  • 10.
    ● A maissimples abordagem de design ● Segundo Martin Fowler, é uma boa maneira de começar ● Maneira rápida de fazer funcionar sem muita complexidade Desvantagens: ● Quando o software escala e ganha complexidade pode demandar a criação de mais camadas ● As camadas não dizem nada sobre o domínio do negócio ● A camada de web pode se comunicar diretamente com a camada data Pacote por camada
  • 11.
    Pacote por recurso ●Um único pacote ● Pacote com base nos recursos relacionados ao domínio ● Potencialmente mais fácil encontrar o código ● OBS: Nenhum item fora do pacote pode acessar as informações sem passar pela View (Controller)
  • 12.
    Portas e adaptadores ●Separada entre dentro (domínio) e fora (infraestrutura) ● Dentro: contém tudo que é relacionado ao domínio ● Fora: contém as interações externas (UI, banco de dados, etc..) ● Principal regra é o que está fora depende do que está dentro e nunca o contrário
  • 13.
    Pacote por componente ●Abordagem híbrida para todas as descritas anteriormente ● Objetivo as responsabilidade um componente em um único pacote ● Somente uma entrada para o componente
  • 14.
  • 15.
  • 16.
    CREDITS: This presentationtemplate was created by Slidesgo, including icons by Flaticon, and infographics & images by Freepik. Please keep this slide for attribution. That's all folks!