Architecture : The Clean Architecture – Edson Borges – Medium

Tornar um software totalmente funcional e da melhor forma possível tende-se a ser o principal objetivo do desenvolvedor,mas isso não está relacionado somente a execução correta das funções a que foi programado,mas também refere-se a qualidade do código,desde de sua organização visual, até o bom uso de técnicas de programação.
Para auxiliar no trabalho de tornar as coisas mais “limpas” e organizadas foi criado o conceito de The Clean Architecture, trazendo ideias e práticas de boa programação. Entretanto, não basta apenas ler conceitos,é necessário tornar eles rotineiros em sua vida de programação,através de práticas,raciocínio e força de vontade em fazer algo funcional e de qualidade.

A ideia de estruturar o software já é debatida no meio acadêmico e meio literário com uma certa frequência,onde a grande maioria,senão todas, convergem para uma certeza: A importância da separação de interesses,através da separação em camadas.
Como resultados dessas separações,utilizadas pelas arquiteturas:

  • Independência de Framework:
    Sem necessidade de ter uma biblioteca agindo para que se tenha seu funcionamento
  • Testes:
    Podendo ser testada sem uso de interfaces
  • Independência de usuários :
    Capacidade de mudar internamente sem alterar o sistema de forma direta
  • Independência de banco de dados:
    Podendo-se trocar o banco de dados sem nenhuma interferência no resto do sistema
  • Independência de de agente externa:
    As regras não mudam,em relação as mudanças do em relação ao mundo exterior
Figura 1.1-Gráfico representativo de separação de camadas

Como mostra a figura 1.1,podemos ver a representação de diferentes áreas do software,onde mais internamente se tem as regras de negócio/políticas e mais externamente os artifícios/mecanismo.Sendo assim,quanto mais internamente se observar,verá maior nível do software.
Dentro dessas características,podemos observar uma regra de dependência,onde ela diz que as dados relacionados código fonte devem apontar para o ambiente interno da arquitetura.Sem nenhuma relação com o ambiente externo e vice versa. Isso tudo com o propósito de evitar qualquer conflito de entre as camadas.

Onde encontramos a camada relacionada às regras gerais de negócio. Local onde se unifica as ações dos softwares,afim de poder usar em outros possíveis softwares.

Temos as entidades como a camada responsáveis pela regra de negócios mais genéricas, para regras mais específicas existem a camada de casos de uso,gerenciando os fluxos de informações da aplicação,com o propósito do negócio atingir as metas do caso de uso.Espera-se ainda que as suas modificações não afetem a camada da entidades

Aqui se encontra a camada responsável por converter os dados das camadas de entidade e casos de uso para alguma camada mais externa,como as que contém banco de dados. Camada onde se encontra ações relacionados a exibições de dados ao usuário.Entretanto,assim como as demais outras camadas,as suas mudanças ou ações devem afetar qual outra.

Chegamos enfim a camada mais externa,contendo normalmente Banco de dados e framework específicas da aplicação,local onde normalmente se tem a produção do código.Camada onde se tem todas os auxiliares da aplicação.

Apesar de estar compreendendo uma vasta gama de uma arquitetura simples de software,esse modelo pode ser ampliado a depender da situação,mas o que se tem em comum a todas as possibilidades,é a necessidade da aplicação da regra de dependência,onde ela sempre aponta para dentro.E a medida que se olha para a parte mais interna da arquitetura,mais abstrato se torna,sendo que o círculo mais interno representa uma parte geral.

Diante de uma organização tão vasta,é notório observar que se vai economizar bastante com tempo e paciência na produção de código,caso venha a se seguir esse padrão de arquitetura,ou qualquer outra que se aplique a mesma metodologia. Tornando seu código minimamente organizado e tecnicamente funcional,de modo que se algo se torne obsoleto,além de não interferir diretamente com as outras,será de fácil substituição .

LEAVE A REPLY

Please enter your comment!
Please enter your name here