Evento gratuito de Micro-serviços com Spring

Arquitetura Limpa

O que é?

Padrão de arquitetura de software, ou seja, define formas de como a gente vai implementar o código da nossa aplicação. A Arquitetura Limpa é um padrão de arquitetura que organiza o código de forma a tornar a aplicação independente de detalhes técnicos, como frameworks e tecnologias específicas.

Mas não se refere as diretamente tecnologias, a Arquitetura Limpa pode ser aplicada em todas linguagens e frameworks. Assim como os princípios SOLID por exemplo.

Inversão de Dependência

A Inversão de Dependência corresponde a letra D, do padrão SOLID, que traz a ideia que nossos módulos devem depender de abstrações e não implementações, ou seja, nossas classes não deveriam ser diretamente acopladas a outras classes e sim trabalhar em cima de uma interface ou classe abstrata, dessa forma nossa classe conhece apenas a abstração, que define os métodos e atributos necessários para ela precisa atinja seu propósito.

Dependency_inversion.png

Para saber mais

Fernanda Kipper | Dev on Instagram: "Você conheço o último princípio do SOLID? • • • A Inversão de Dependência corresponde a letra D, do padrão SOLID, que traz a ideia que nossos módulos devem depender de abstrações e não implementações, ou seja, nossas classes não deveriam ser diretamente acopladas a outras classes e sim trabalhar em cima de uma interface ou classe abstrata, dessa forma nossa classe conhece apenas a abstração, que define os métodos e atributos necessários para ela precisa atinja seu propósito. Já a Injeção de Dependência é um Design Pattern, uma forma colocar em prática a Inversão de Dependência. Nela, existe um terceiro objeto, quem utiliza nosso módulo por exemplo, que será responsável por injetar uma instância de uma classe que implemente a interface esperada no nosso modulo, essa injeção pode ser através do construtor, porém existem outras formas, como através de setter injection. Se quiser se aprofundar no assunto, recomendo a leitura do artigo sobre Inversion Control Container and the Dependency Injection pattern do Martin Fowler. https://martinfowler.com/articles/injection.html • • • #computacao #tecnologia #programagão #solid #programadores #desenvolvedores #computação #código #dependencyinversion"

Desacoplamento

Desacoplamento é um princípio fundamental da Arquitetura Limpa. Ele garante que as diferentes partes da aplicação não dependam diretamente umas das outras, promovendo um código modular e mais fácil de manter.

Na Arquitetura Limpa, o desacoplamento é alcançado ao dividir a aplicação em camadas, onde cada camada tem uma responsabilidade específica e conhece apenas as abstrações necessárias para realizar seu trabalho, sem se importar com as implementações concretas das outras camadas.

Regra da Dependência

A Regra da Dependência estabelece que as camadas internas da aplicação nunca devem depender de camadas externas. Em outras palavras, as regras de negócio (núcleo da aplicação) não devem saber nada sobre detalhes de infraestrutura, como bancos de dados, interface de usuário ou serviços de terceiros. Essa regra garante que o núcleo da aplicação permaneça isolado e independente, sendo afetado minimamente por mudanças externas.

<aside> 💡

As camadas mais internas não devem conhecer implementações das camadas mais externas a elas = Inversão de Dependência

</aside>

clean-arc.jpeg

→ Os círculos são as camadas da nossa aplicação.

O que isso quer dizer?