Clean Architecture
Tags: Clean Architecture
A Clean Architecture é uma das arquiteturas mais faladas em desenvolvimento de software. Vamos entender o que é e como aplicá-la.
Origem
A Clean Architecture foi proposta por Robert C. Martin, também conhecido como Uncle Bob. Ele é um dos principais defensores da programação orientada a objetos e autor de vários livros um deles aborda essa arquitetura de forma bastante aprofundada.
Uncle Bob, propôs a ideia da Clean Architecture como uma forma de organizar o código de forma que ele se torne mais fácil de entender e manter. A ideia central é separar as preocupações do sistema em camadas, onde cada camada tem uma responsabilidade específica.
As camadas da Clean Architecture
O Modelo é composto por quatro camadas principais:

-
Entities: A camada mais interna, que contém as entidades de negócio e as regras fundamentais e que gerenciam o comportamento do sistema.
-
Use Cases: Nessa camada ficam as regras de negócio que representam as operações que o sistema deve realizar.
-
Interface Adapters: A camada que implementa os detalhes técnicos do sistema, como acesso a banco de dados, chamadas para serviços externos e exposição de APIs.
-
Frameworks and Drivers: A camada que contém as bibliotecas e ferramentas utilizadas pelo sistema, como frameworks web e bancos de dados.
Com as direção das dependências apontando de fora para dentro, temos o seguinte: Frameworks e Drivers dependem de Interface Adapters, que por sua vez dependem de Use Cases e Entities.
Como um exemplo de implementação da Clean Architecture, podemos considerar uma aplicação web que utiliza ASP.NET Core. A estrutura de pastas poderia ser organizada da seguinte forma:

A camada CleanArchitecture.Domain contém as entidades, regras de negócio mais fortes e abstrações que serão os contratos entre as camadas mais externas, enquanto a camada CleanArchitecture.Application contém os casos de uso. A camada CleanArchitecture.Infrastructure implementa os detalhes técnicos, como acesso a banco de dados e serviços externos, e a camada CleanArchitecture.Api expõe a API para o mundo exterior.
Notem os bullets estão marcados com a cor de cada camada, porém a camada de Frameworks and Drivers não está identificada, isso porque muitas vezes ela acaba se misturando com a camada de Interface Adapters, como mostrado na documentação da Microsoft.
Referências
por Flávio José Formis,
19/08/2025
Aqui estão algumas recomendações relacionadas ao conteúdo. Esses itens podem ser comprados na Amazon com o meu link de associado.
Versão Kindle
Código Limpo: Habilidades Práticas do Agile Software
LEITURA OBRIGATÓRIA! O livro clássico sobre boas práticas de desenvolvimento de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para escrever código limpo e de fácil manutenção. Uma leitura essencial para qualquer desenvolvedor ou arquiteto de software.
Livro Físico
Código Limpo: Habilidades Práticas do Agile Software
LEITURA OBRIGATÓRIA! O livro clássico sobre boas práticas de desenvolvimento de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para escrever código limpo e de fácil manutenção. Uma leitura essencial para qualquer desenvolvedor ou arquiteto de software.
Versão Kindle
Arquitetura Limpa: o Guia do Artesão Para Estrutura e Design de Software
LEITURA OBRIGATÓRIA! O livro clássico sobre arquitetura de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para criar arquiteturas de software limpas, flexíveis e de fácil manutenção. Uma leitura essencial para qualquer arquiteto de software.
Livro Físico
Arquitetura Limpa: o Guia do Artesão Para Estrutura e Design de Software
LEITURA OBRIGATÓRIA! O livro clássico sobre arquitetura de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para criar arquiteturas de software limpas, flexíveis e de fácil manutenção. Uma leitura essencial para qualquer arquiteto de software.
Confira minhas recomendações de livros e outros itens na página de recomendações.