Code Smell é um termo usado para descrever indícios de problemas no código que, embora não quebrem sua funcionalidade, indicam possíveis falhas de design ou má prática de programação. Esses "cheiros" sugerem que o código pode se tornar difícil de manter, entender ou expandir no futuro.
Código com Code Smell -> Cadeia de mensagens:
Message Chain (Cadeia de mensagens) é um code smell onde um objeto acessa membros internos de outro objeto em cadeia. Isso cria dependência excessiva na estrutura interna de outros objetos, tornando o sistema mais frágil e difícil de manter. A solução geralmente é encapsular as chamadas e oferecer métodos mais diretos no objeto principal.
// Código com acoplamento em cadeia
let cidade = pedido.getCliente().getEndereco().getCidade();
Código refatorado (quebrando a cadeia):
// Melhor: o objeto pedido expõe diretamente o que é necessário
let cidade = pedido.getCidadeDoCliente();