O que vem a ser a Clean Architecture? \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 12 Horas 

 50 Min 

 00 Seg 

   Tempo restante da oferta: 12 50 00 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) O que vem a ser a Clean Architecture?  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

# O que vem a ser a Clean Architecture?

 Confira nesse artigo uma introdução do que é a Clean Architecture, quais seus componentes e os benefícios ao utilizar essa arquitetura.

 [ Marylene Guedes ](https://www.treinaweb.com.br/blog/autor/marylene-guedes) 3 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/11/Clean-Architecture.png)  

Para construir softwares sólidos e robustos, escolher uma arquitetura é fundamental, aliás ela também te ajuda a garantir que o projeto seja bem-sucedido e você consiga escalar depois sem muitos problemas. Uma arquitetura que tem ficado bastante conhecida é a Clean Architecture e é sobre ela que vamos abordar neste artigo.

### O que é Clean Architecture?

Criada por Robert C. Martin, a Clean Architecture é um padrão de arquitetura de software que tem como principal objetivo separar as preocupações do software, dividindo o software em camadas. Dessa forma, os sistemas são independentes, pois essa arquitetura promove a separação clara de responsabilidades do código, mas sempre com foco nas regras de negócio. Vale ressaltar que isso não se refere diretamente a alguma tecnologia, a Clean Architecture pode ser aplicada em todas linguagens e frameworks.

A utilização dessa arquitetura é importante justamente por essa independência que ela proporciona, o que faz ter uma manutenção mais simplificada: você pode fazer alterações em uma parte sem afetar as outras.

A flexibilidade também é um ponto importante já que a independência de frameworks, bibliotecas, banco de dados e de qualquer elemento externo, permite que você faça as melhores escolhas para aquele projeto. Por fim, não podemos esquecer dos testes, já que a utilização dessa arquitetura facilita a utilização de testes automatizados. Isso porque como as regras de negócios estão isoladas das camadas externas (regras de negócio jamais devem ser implementadas na interface do usuário), faz com que você possa testar tudo de forma independente.

### Componentes da Clean Architecture

A Clean Architecture é geralmente dividida em camadas, onde a camada mais interna contém a lógica de negócio. Essa separação de camadas te poupará de muitos problemas que possam vir com a manutenção do software.

Veja a imagem abaixo: os círculos são as camadas da nossa aplicação, onde as camadas mais internas não devem conhecer implementações das camadas mais externas. Além disso, temos a regra da dependência, que diz que as dependências sempre devem apontar para o nível mais alto da aplicação, ou seja, sempre para as camadas mais internas.

À medida que você avança as camadas (de fora para dentro), o software se torna mais abstrato e encapsulável.

![Componentes do Clean Architecture](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/11/Clean-Architecture.jpg)

#### Entidades

Esta camada contém as entidades, ou seja, os objetos de negócio, que representam as regras de mais alto nível do negócio. Além disso, ela é a camada menos propensa a mudar quando algo externo muda.

#### Casos de Uso

Os casos de uso representam as interações entre o sistema e os atores externos, por isso eles contém as regras de negócio da aplicação. São eles que irão orquestrar as ações a serem realizadas.

#### Interfaces de Controladores

Nesta camada, definimos as interfaces para a comunicação com elementos externos, por isso o MVC fica nesta camada. Ela faz a adaptação da camada mais externa para uma interface na qual a camada de casos de uso conhece. Isso mantém a implementação de detalhes fora das camadas internas.

#### Frameworks e Drivers

Essa camada inclui os detalhes de implementação, como a interface do usuário, bancos de dados e frameworks. É a camada mais externa e a menos importante quando se trata de regras de negócios.

Por fim, a Clean Architecture é uma excelente abordagem para utilizar se você precisa colocar a lógica de negócios no centro do seu projeto. Dessa forma, você pode criar sistemas mais flexíveis, testáveis mais facilmente e de fácil manutenção. Se você ainda não explorou a Clean Architecture, [acesse nosso curso](https://www.treinaweb.com.br/curso/clean-architecture-fundamentos-e-pratica "acesse nosso curso") para começar a aplicá-la em seus projetos de desenvolvimento de software.

- [ #TI ](https://www.treinaweb.com.br/blog/tag/ti)
- [ #arquitetura ](https://www.treinaweb.com.br/blog/tag/arquitetura)

Autor

 ![Marylene Guedes](//secure.gravatar.com/avatar/5b0ba52b3705f298802db58782656bbc?d=mm)

## Marylene Guedes

 Responsável pelo sucesso do cliente na TreinaWeb. Graduada em Gestão de Tecnologia da Informação pela FATEC Guaratinguetá, além de estudante de UX/UI. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/marylene-guedes)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/02/capa-produtividade-trabalho-remoto-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     4 anos atrás

    ##  [ Dicas para ser mais produtivo no trabalho remoto ](https://www.treinaweb.com.br/blog/dicas-para-ser-mais-produtivo-no-trabalho-remoto) 

     Estabelecer uma rotina de trabalho é fundamental para que tudo flua bem. Por isso, separamos algumas dicas para que você possa usufruir desse modelo e ainda conseguir ser muito produtivo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/01/CAPA-MARYLENE-11-01.png-400x280.jpg)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     4 anos atrás

    ##  [ 5 dicas que todo aluno de faculdade de TI deveria seguir ](https://www.treinaweb.com.br/blog/5-dicas-que-todo-aluno-de-faculdade-de-ti-deveria-seguir) 

     A faculdade é um período de muita aprendizagem em todos os aspectos. Confira nesse artigo algumas dicas para que você possa aproveitar a sua fase na faculdade da melhor maneira possível.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/05/criando-api-restful-jax-rs-api-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     7 anos atrás

    ##  [ Criando uma API RESTful com a JAX-RS API ](https://www.treinaweb.com.br/blog/criando-uma-api-restful-com-a-jax-rs-api) 

     O Java define a especificação JAX-RS API para a criação de aplicações API RESTful, que pode ser facilmente utilizada com a implementação do Jersey.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/05/12150130/MATERIAL-DESIGN-400x280.png)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     7 anos atrás

    ##  [ O que é Material Design? ](https://www.treinaweb.com.br/blog/o-que-e-material-design) 

     Se você deseja criar rapidamente aplicações bonitas e utilizáveis, dê uma conferida no Material Design.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/GUIA-LINGUAGEM-JAVASCRIPT-400x280.png)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     6 anos atrás

    ##  [ Guia da Linguagem JavaScript ](https://www.treinaweb.com.br/blog/guia-da-linguagem-javascript) 

     Neste Guia da Linguagem Javascript vamos abordar aspectos fundamentais, como: tipos de dados, variáveis, objetos, arrays e muito mais.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/08/07161700/gerenciamento-python-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     4 anos atrás

    ##  [ Empacotando e publicando pacotes Python no PyPi ](https://www.treinaweb.com.br/blog/empacotando-e-publicando-pacotes-python-no-pypi) 

     Neste artigo iremos aprender como funciona o processo de empacotar e distribuir nossos próprios pacotes Python no PyPi.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/03/28204913/capa-codigo-limpo-400x280.png)  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

     8 anos atrás

    ##  [ Dicas para manter seu código limpo e legível ](https://www.treinaweb.com.br/blog/dicas-para-manter-seu-codigo-limpo-e-legivel) 

     Veja neste artigo boas práticas que você deve ter com seu código.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/09/04112944/DJANGO-PROJETOS-PYCHARM-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     2 anos atrás

    ##  [ Validação de dados em aplicações Django ](https://www.treinaweb.com.br/blog/validacao-de-dados-em-aplicacoes-django) 

     Aprenda como trabalhar com validação de dados em aplicações Django, utilizando validações padrões e customizadas.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/12/npm-voce-sabe-o-que-da-para-fazer-com-ele-400x280.png)  [ Node ](https://www.treinaweb.com.br/blog/categoria/node-js) 

     3 anos atrás

    ##  [ Introdução ao gerenciamento de projetos Node.js com npm ](https://www.treinaweb.com.br/blog/introducao-ao-gerenciamento-de-projetos-node-js-com-npm) 

     Neste artigo sobre Introdução ao gerenciamento de projetos Node.js vamos aprender os principais comandos utilizados no npm.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/02/dicas-curriculo-sucesso-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     4 anos atrás

    ##  [ Dicas para um currículo de sucesso ](https://www.treinaweb.com.br/blog/dicas-para-um-curriculo-de-sucesso) 

     Saber fazer um bom currículo pode te abrir portas. Por isso, ainda que você já tenha seu currículo pronto, vale a pena dar aquela revisada e quem sabe até uma formatada?! Confira essas dicas.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/02/20143511/dicas-desenvolvedor-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     7 anos atrás

    ##  [ Dicas para impulsionar sua carreira como desenvolvedor ](https://www.treinaweb.com.br/blog/dicas-para-impulsionar-sua-carreira-como-desenvolvedor) 

     Se você deseja impulsionar sua carreira, separamos algumas dicas para você se destacar como desenvolvedor.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/08/DEPLOY-SPRING-DIGITAL-OCEAN-400x280.jpg)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     3 anos atrás

    ##  [ Deploy de uma aplicação Spring Boot na DigitalOcean ](https://www.treinaweb.com.br/blog/deploy-de-uma-aplicacao-spring-boot-na-digitalocean) 

     Aprenda nesse artigo como realizar o Deploy de uma aplicação Spring Boot em uma VPS da DigitalOcena, usando ferramentas como o Nginx.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **12h 50min 00s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
