bom pessoal seguinte tem um cara que ele é totalmente fora da curva se eu não me engano ele está trabalhando no new bank hoje inclusive está como vp ali de data se eu não me engano no new bank e o seguinte ele tem um livro famoso inclusive vou recomendar daqui a pouco tá aqui é o michael me guarde tá esse cara aí ele tem uma toque eu tô deixando o link aqui embaixo pra você tá o link do youtube tá aqui nesse slide pra você assistir tá a essa toca que ele fala especificamente sobre acoplamento e os tipos de acoplamento que ele acabou a categorizando e eu acho que é uma forma bem interessante de você entender qual é o tipo de acoplamento no software que você está desenvolvendo tá para que você mesmo consiga planejar a evolução daquilo que você está criando legal então quais são os tipos de acoplamento que ele coloca aqui acoplamento operacional ou seja você depende de alguma coisa que está com um problema logo você não consegue funcionar também esse acoplamento ele é muito crítico porque faz com que você necessariamente tenha problema mesmo na hora de rodar as coisas. Legal? Aí a gente tem o acoplamento de desenvolvimento, tá? O que que acontece? O de desenvolvimento faz com que, se eu mudar um lado, eu obrigatoriamente tenho que coordenar a mudança de outro para que essas duas coisas consigam funcionar. Isso, galera, é muito comum quando você está fazendo algumas mudanças muito fortes na sua aplicação e que acabam dependendo de mudanças em outros módulos. Ou até mesmo quando a gente está falando de micro serviços. Acoplamento não é só código. A gente está falando de acoplamento. Acontece também em sistemas diferentes. também em sistemas diferentes. Então, vai gerar uma nova versão de alguma coisa e você tem que coordenar o desenvolvimento dessas coisas em conjunto para que você consiga trabalhar. Existe também um acoplamento que ele chama de acoplamento semântico. O que acontece é o seguinte, vamos imaginar que a gente está trabalhando com DDD, Domain Driven Design, e a gente tem agora uma situação. Todo mundo a gente está chamando de cliente, mas o nosso sistema de suporte está chamando o cara de pessoa, sei lá. E o que você vai querer fazer? Você, em conjunto com conceitos de diversos contextos no sistema, vocês vão começar a utilizar os mesmos conceitos, os mesmos nomes, as mesmas formas para os sistemas fazerem mais sentido em conjunto. Então, esse é o acoplamento semântico. É quando você depende de terminologias, de utilizações em diversos lugares ali da sua aplicação. Temos também acoplamento funcional. Isso aí é muito comum quando você tem, por exemplo, uma biblioteca, e essa biblioteca, por exemplo, é utilizada por diversas pessoas em diversos projetos. Ou seja, você tem algo que a gente chama de Shared Kernel. Isso, quando a gente está falando, inclusive, de DDD, é muito comum. Ou seja, muita gente utiliza algo e esse algo, se mudar, pode quebrar ou faz com que diversos pedaços da sua aplicação tenham que mudar. Então isso aí normalmente é funcional. E a gente tem o acoplamento incidental. Acidental? Eu vou chamar de acidental. Que é simplesmente o pior do mundo. Que você mudou e quebrou alguma coisa sem perceber o porquê. Você mudou o contrato da sua API sem nenhuma razão e quebrou todo mundo que estava te consultando ou qualquer coisa desse tipo. Então, se você começar a olhar dessa forma, todas as vezes que você vai projetar um sistema, você começa a pensar, poxa, por que eu estou acoplando isso? Como que isso funciona? Qual o risco que eu vou ter? A gente, inclusive, vai falar sobre riscos de acoplamento daqui a pouco, tá? Mas é importante você conseguir olhar, né? Eu quero que nesse momento você pare, pense no seu software e tenta identificar os principais acoplamentos que você tem e veja se eles entram em algumas dessas categorias legal super recomendo que você veja esse vídeo também que eu estou colocando a aqui embaixo como referência pra você beleza então vamos nessa