top of page
Foto do escritorFlávio Barbosa Neto

ARQUITETURA LIMPA – COMO MELHOR UTILIZÁ-LA


Se você é desenvolvedor e quer melhorar o seu padrão de “design pattern” e estrutura do software, suspostamente já tenha pesquisado ou escutou alguém falar sobre a arquitetura limpa, ou, então como mais conhecida “clean architecture”. Mas afinal, você sabe qual a finalidade e os princípios que a arquitetura limpa aborda, além disso, quais as vantagens em utilizar?

Neste pequeno texto te ajudarei com esse tema, a arquitetura de software.


Qual o conceito de uma arquitetura de software?


Basicamente todas as arquiteturas de software tem o mesmo objetivo, a segregação de interesses. Mas como isso é possível? Todas elas conseguem alcançar o seu objetivo através da separação do software desagrupando o mesmo em camadas.


O que é Clean Architecture?


“Clean Architecture” é uma arquitetura de software escrita por Robert Cecil Martin (ou Uncle Bob), postada em 2012 no seu blog clean coder. Com a finalidade da segregação de interesses, e objetivos de estruturar e padronizar o código-fonte produzido, visando a facilidade de reusabilidade e manutenção, além da independência de tecnologia.

Independentemente da linguagem de programação e/ou tecnologia a qual você trabalhe, poderá utilizar os princípios abordados pelo Uncle Bob.

Atualmente existem diversas ideias sobre a arquitetura de software, como por exemplo, Arquitetura Hexagonal, Arquitetura de Cebola, Arquitetura gritante, DCI, BCE e entre outras.


Mas o que essas arquiteturas produzem?


“Produzem uma solução independente de estrutura, testável, independente da interface do usuário, independente de banco de dados, independente de qualquer agência externa”. (Uncle Bob).

Quando Tio Bob fala sobre ser independente de estrutura, a arquitetura do software a qual está sendo desenvolvida, necessariamente não irá depender de uma biblioteca de software com diversos recursos que não serão utilizados e que estariam limitando o projeto.

O segundo ponto abordado é sobre os testes, como são separados por camadas, a solução é possível realizar testes para toda a aplicação, principalmente testes voltados as regras de negócios e da sua aplicação.

O terceiro ponto abordado é sobre a independência da interface do usuário, ela deve ser uma tarefa de simples mudança e que não ocasione alteração em qualquer outro ponto do software.

O quarto ponto abordado é sobre a independência do banco de dados, o mesmo algum dia pode ser alterado sem muitas dores de cabeça, afinal, as regras de negócios devem estar associadas ao nosso “Domain” ou domínio, o que é muito bem abordado em todas as arquiteturas de software.

O quinto ponto abordado é sobre a independência de qualquer agência externa, mas o que isso quer dizer? Que as suas regras de negócio obrigatoriamente não devem saber nada sobre coisas de fora.


Aqui está um diagrama disponibilizado pelo Tio Bob, a fim de explicar como essa arquitetura se desempenha.


A principal parte por trás do funcionamento da arquitetura limpa


Os círculos na imagem mostrada acima representam diferentes áreas de software. de forma geral, quanto mais você avança entre os círculos, mais alto o nível do software se torna. Os círculos externos são mecanismos. Os círculos internos são políticos.

A regra de substituição que faz essa arquitetura funcionar é a Regra de Dependência. Essa regra diz que as dependências do código-fonte só podem apontar para dentro. Para ficar um pouco mais claro, nada em um círculo interno pode saber qualquer coisa sobre algo em um círculo externo. Afinal não queremos que nada e em nenhuma hipótese, um círculo externo afete os círculos internos.


Artigo por: Flavio Barbosa Neto

119 visualizações0 comentário

Comments


bottom of page