de Informação (Unipar) ➔ Especialista em desenvolvimento web e mobile (Alfa Umuarama) ➔ Desenvolvedor há mais de 10 anos ➔ Engenheiro de Software no PagSeguro International (antigo BoaCompra) ➔ Apaixonado por futebol 🌴👍🌍 e esporte eletrônico (CS2/EAFC) 🔫 @renandelmonico @renandelmonico /renandelmonico /renandelmonico /renandelmonico [email protected]
evoluir um software, o que acaba se tornando a principal fonte de custo em uma futura evolução . ➔ Normalmente os juros cobrados para a resolução podem ser muito altos. ➔ Um menor acoplamento pode deixar uma alteração ou evolução mais flexível, porém pode introduzir alguns overheads ◆ Mapeamentos, serializações ◆ Desacoplamento entre microservices: comunicação assíncrona ➔ No início, um software mais acoplado pode dar a sensação de ser mais rápido de ser desenvolvido, porém gera sérios problemas ◆ Dificulta testes ◆ Refatorações são mais complicadas ◆ Evolução da arquitetura é difícil
mais fácil de entender, porém quando o software vai crescendo os problemas começam a aparecer ◆ Alteração na camada X pode quebrar a camada Y ➔ Em softwares maiores, um acoplamento menor nos ajuda a separar as responsabilidades de maneira clara, porém em softwares menores pode parecer mais verboso e mais complexo do que deveria ➔ Não existe certo ou errado, tudo é tradeoff!
de um em específico ➔ Em outras palavras, quantos outros módulos usam ou importam um determinado módulo ➔ Um alto número indica que esse módulo é muito usado e importante para o software ➔ Bom para camadas mais relevantes e estáveis ◆ Camada com regras de negócio
em específico depende ➔ Em outras palavras, quantos módulos um determinado módulo usa ou importa ➔ Um alto número indica que este módulo depende muito de módulos externos, ou seja, ele é frágil a mudanças externas ➔ As famosas Controllers tendem a exigir alguma alteração quando módulos que elas dependem são alteradas
Ca = 1 Ce = 1 / Ca = 1..N Ce = 1..N / Ca = 1 Ce = 1 / Ca = 0 0 = Estável (core) 0.33 = Estável, mas um pouco flexível 0.66 = Menos estável. Tende a mudar mais 1 = Instável. Facilmente trocado
/ Ca = 1 Ce = 1 / Ca = 1..N Ce = 1..N / Ca = 1 Ce = 1 / Ca = 0 Unitário Unitário + mocks ou integração in memory Unitário ou integração + contrato E2E + testes exploratórios