Skip to the content.
Skip to the content.

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:

Clean Architecture

  1. Entities: A camada mais interna, que contém as entidades de negócio e as regras fundamentais e que gerenciam o comportamento do sistema.

  2. Use Cases: Nessa camada ficam as regras de negócio que representam as operações que o sistema deve realizar.

  3. 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.

  4. 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:

Clean Architecture Solution

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

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

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

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

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

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.