Bom pessoal, baseado no vídeo anterior, é aquela história, como que a gente lida com acoplamento no nosso código. Então a grande sacada aqui é o seguinte, quando nós vamos trabalhar com código, nós temos dois pontos importantes, que é a evolução desse código ao longo do tempo. Novamente, toda vez que você está desenvolvendo um software, você não está desenvolvendo o software para agora. Você está desenvolvendo ele para atender requisitos de agora, mas com o olho lá no futuro. E para que você consiga olhar lá para o futuro o seu software, tem que ter diversas práticas para que essa evolução aconteça da melhor forma possível. Então, conforme essa evolução vai acontecendo, você vai percebendo que você vai gerar acoplamentos. Então, o que acontece primeiramente? É comum, sim, nós fugirmos do acoplamento da forma que a gente mais consegue, para que nós possamos montar o nosso Lego da forma que a gente quer. E não da forma como o seu código mal escrito quis, que é deixar as suas duas mãos grudadas e você não consegue mover para lugar nenhum. Legal? Um outro ponto aqui é o seguinte. Um dos maiores desafios hoje em dia para você desenvolver um software é conseguir desenvolver um software com baixo acoplamento e alta coesão. O que é alta coesão? Coisas que mudam em conjunto ficam juntas. Coisas que são de responsabilidades diferentes, elas ficam separadas. E que você consegue mudar uma coisa sem necessariamente afetar a outra. A gente, inclusive, vai depois falar sobre complexidades, índices, a gente vai falar sobre aferência, eferência e etc. Mas a gente chega lá, galera. Então, o que acontece que a gente tem que pensar? Toda vez que você vai acoplar algo, você tem que ter ciência do tipo de acoplamento tá e tirar o máximo benefício disso em refém em relação aos seus malefícios novamente a gente precisa de acoplamento mas a gente sabe que acoplamento demais, ele tem problemas para a gente de manutenção. Então, o grande ponto está em qual é o nível máximo de acoplamento que eu consigo deixar minha aplicação, onde isso vai trazer mais benefício do que malefício para minha aplicação. No final do dia, conviver o acoplamento é isso é conseguir fazer com que ele mais nos ajude do que nos atrapalha legal eu não sei se você já ouviu falar mas a gente normalmente é um ditado que fala o problema a solução é o problema ou seja se eu não consigo fugir do acoplamento eu vou usar o acoplamento ao meu favor. Legal? Então, o que acontece? Se tudo tem um lado bom e ruim, vamos tentar sempre fazer com que o lado bom seja melhor do que o lado ruim. Então, quando você começa a olhar com acoplamento com esses olhos, você pensa, eu não vou querer desacoplar tudo, porque desacoplar tudo também vai me dar muito trabalho o que eu consigo acoplar que vai gerar velocidade que vai gerar facilidade aqui pra mim mas que ao longo do tempo isso também não vá me a enrolar na frente tá e o porquê que eu tô falando isso e pode parecer óbvio mas não é pra muita. Tem muito desenvolvedor que o cara tem mais interface no sistema do que classes e funções, etc. Por quê? Porque o cara quer fazer a coisa tão desacoplada que o acoplamento, no final das contas, virou um problema. E o problema que virou é que mesmo sem estar acoplando, ele teve um problema gigante. Entende qual que é o negócio? O nível de complexidade da aplicação fica extremamente alta. Então, novamente, meu querido amigo, minha querida amiga, pense duas vezes na hora que você está desenhando um componente, para entender o nível de acoplamento que esse componente tem e até que ponto é saudável esse tipo de acoplamento. Bacana? No próximo slide a gente vai entender os tipos de acoplamento. Então vamos nessa.