Sabia que existe uma métrica para medir se a sua classe segue a regra da Responsabilidade Única?
🤔 O que é Coesão?
Em termos simples, coesão é o elemento que mantém as coisas unidas. Quando se trata de código, você deseja alcançar coesão em suas bases de código. A coesão assegura que coisas relacionadas permaneçam juntas, tornando o seu código mais gerenciável.
Uma classe deve ser simples; não deve ser excessivamente complexa. Quanto mais simples a classe, mais fácil de manter.
🤔 O que é LCOM?
LCOM é uma métrica usada para avaliar a transição de um estilo arquitetural para outro. Ela ajuda a identificar classes que podem ter se acoplado involuntariamente. No entanto, ela se concentra principalmente na coesão estrutural e não determina se componentes específicos se encaixam perfeitamente.
🤓 Usando a métrica LCOM para medir a Falta de Coesão
Você pode calculá-la usando a seguinte fórmula: LCOM = 1 - (soma(MF) / M * F)
Onde:
M é o número de métodos na classe
F é o número de campos de instância na classe
MF é o número de métodos da classe que acessam um campo de instância específico
Soma(MF) é a soma de MF sobre todos os campos de instância da classe.
Um valor alto de LCOM indica uma classe com baixa coesão.
📖 Fontes:
Livro "Fundamentals of Software Architecture" de Mark Richards & Neal Ford