Article image
João Pereira
João Pereira15/04/2024 22:28
Compartilhe

Desvendando o Universo da Arquitetura Limpa: Uma Jornada pelos Fundamentos e Aplicações

  • #.NET
  • #Clean Architecture

Entendendo a Arquitetura Limpa

Antes de abordarmos o que é uma arquitetura limpa, precisamos entender o que é arquitetura. O conceito de arquitetura em software se refere à organização fundamental de um sistema, incluindo a organização dos componentes, como eles serão relacionados, o ambiente, as boas práticas e os padrões. É importante lembrar que não existe uma arquitetura de software errada, pois um software se relaciona com esses ambientes, que podem ou não conter princípios. No entanto, é essencial que o software entregue o que deveria e suas funcionalidades. O restante do trabalho é para a melhoria da arquitetura, com uma manutenção mais eficiente, fornecendo suporte e não sendo tão custoso, melhorando a escalabilidade da arquitetura, bem como a performance, já que a decisão de uma arquitetura pode influenciar na performance.

Geralmente, a arquitetura é representada pela descrição de uma estrutura, seja por meio de um desenho ou diagrama, ou uma combinação dos dois.

Arquitetura Distribuída e Monolítica

Existem dois tipos de arquitetura que são mais compreendidos e utilizados: a arquitetura distribuída e a monolítica:

  • Distribuída: Quando falamos nesta arquitetura, estamos nos referindo a vários processos que são executados separadamente, ou seja, não ocorrem na mesma execução. Neste caso, ocorrem chamadas na própria máquina, mas de processos diferentes da aplicação, ou em servidores diferentes, utilizando a internet, por exemplo, ou algum tipo de protocolo, como o protocolo de mensageria AMPQ. Arquiteturas conhecidas na distribuição são o SOA (Service Orientation Architecture) ou a própria arquitetura de microsserviços.
  • Monolítica: Quando se trata da arquitetura monolítica, os componentes do sistema são executados no mesmo processo. As arquiteturas, como por exemplo a limpa, de 3 camadas, são arquiteturas monolíticas.

Arquitetura Limpa

Agora podemos focar no nosso tema principal, que é a arquitetura limpa. A arquitetura limpa, também conhecida como Onion Architecture (Arquitetura Cebola), é uma arquitetura amplamente utilizada no mercado .NET, pois foca no domínio, estimulando a adoção dos conceitos do Domain-Driven Design. Em diferentes empresas e em diversos projetos, você poderá encontrar diversas variações, mas no final, todas têm a mesma estrutura base. O importante é entender a estrutura base.

A arquitetura limpa é dividida em 4 camadas principais, começando pela camada Core, que é o grande centro da aplicação, onde você pode encontrar as entidades, os domínios, os enums do domínio, interfaces de repositório e de serviços, entre outros.

Em seguida, temos a camada de infraestrutura, que contém responsabilidades como, por exemplo, a persistência de dados, comunicação entre sistemas, sendo legado ou não, e pode encontrar integração com serviços em nuvem, por exemplo.

Após a camada de infraestrutura, temos a camada de aplicação. A camada de aplicação funciona como se fosse a interface onde se tem a entrada e saída de sua aplicação, tendo suas funcionalidades, os métodos que serão utilizados, recebendo dados do externo e retornando modelos de dados de saída para o mundo exterior, como por exemplo para o cliente que está efetuando a requisição.

Por fim, temos a camada de API/interface, onde podemos encontrar os controllers. São os controladores que vão gerenciar a interface de chegada dos dados, mas lembrando que os modelos de entrada estarão na aplicação. Também nesta camada teremos configurações a nível de frameworks. Quando você vai injetar e realizar injeções de dependências, é feito nesta parte, assim como a configuração do Swagger, entre outros serviços.

Compartilhe
Comentários (0)