Matheus Castiglioni

Camada de Anti Corrupção

Um problema que em alguns momentos podemos nos deparar é com algo chamado acoplamento, mais especificamente como podemos diminuir os pontos de impactos em nossos serviços? Exemplos de pontos de impacto:

Esses exemplos criam um alto acoplamento e alto acoplamento aumenta possíveis impactos e pontos de mudança que podem fazer nossos sistemas ficarem fora do er, por exemplo:

Uma forma de diminuir a complexidade em lidar com tais situações é criar uma camada no meio disso tudo, essa tal chamada é comumente chamada de Anti corruption layer (Camada de anti corrupção).

Entendendo a solução

A ideia é muito simples, em vez da comunicação direta nos exemplos acimas, a gente adiciona um serviço fazendo a intermediação e ponte entre tais dependencias, por exemplo:

Consumir serviços de terceiros

Exemplo de consumir serviços de terceiros

Utilizar bibliotecas de terceiros

Exemplo de utilizar bibliotecas de terceiros

Novos sistemas comunicar com sistemas antigos (legados)

Exemplo de novos sistemas comunicar com sistemas antigos (legados)

Comunicação entre serviços e contextos

Exemplo de comunicação entre serviços e contextos

Dessa forma caso um serviço de terceiro mude sua versão que gere quebra de compatibilidade, o único ponto de ajuste seria na camada intermediária, os serviços que a utilizam nem vão saber que houve essa quebra (o mesmo vale para atualizações de bibliotecas e demais cenários).

Conclusão

Nesse post vimos como podemos diminuir e minizar os pontos de impactos quando temos nossos serviços acoplamentos altamente com dependências que fogem do controle dos mesmos.

Abraços, até a próxima.

Matheus Castiglioni

Matheus Castiglioni

Apaixonado pelo mundo dos códigos e um eterno estudante, gosto de aprender e saber um pouco de tudo, aquela curiosidade de saber como tudo funciona, tento compartilhar o máximo de conhecimentos adquiridos e ajudar todos aqueles que sou capaz.

comments powered by Disqus