Qualidade de código: não use mais mensagens diretamente no código!
Muitos sistemas aos quais dei suporte possuem mensagens string no seu código, mas com o avançar da experiência vem a responsabilidade por escrever código legível e testável.
Além de não ficar um código bonito, isso traz problemas, pois mensagens podem não estarem padronizadas por todo o sistema, ou oferecem alguma dificuldade para serem substituídas quando necessário.
Outro ponto clássico é o fato de termos isso perdido em milhares de linhas de código, e muitas vezes estes textos alteram até o escopo das respostas, e sofremos para identificá-los.
Podemos melhorar, utilizando uma classe de constantes para agrupar num único local todas as definições e evitar strings e números mágicos perdidos pelo código !
Antes:
Depois:
Claro que tem um preço, criar uma classe para guardar as mensagens:
Mas qual o benefício?
Poder utilizar a mesma string em testes unitários e assim garantir a qualidade do código sem ficar preocupado em atualizar em múltiplos locais os textos de mensagens de erro.
Facilitar a transição de linguagem da aplicação ou até a implementação de um esquema multilingual.
Qual a diferença no teste unitário? Ao invés de replicar o texto, mencionamos também a classe estática, fazendo com que a mensagem seja sempre a mesma!
Então vimos aqui uma utilidade prática para utilizarmos as strings em um arquivo externo e assim unificar o seu uso, propiciando uma garantia de que ao mudar a string em um único ponto, não iremos ter que mudar em vários outros lugares.
E sem querer você estará aplicando o Principio da Responsabilidade Única (SRP) em orientação a objetos, que afirma que: ”A classe deve ter uma única razão para ser modificada.” ou seja, se eu mudo a frase de um texto simples numa classe, irei ter que sair por todo o meu código trocando o texto em testes unitários e comparações de erros, se ele não estiver fixado em apenas um lugar !
Gostou do artigo? clique no ícone👏e me siga para ver as próximas publicações !! Quer ver mais conteúdos, acesse minhas redes através do Linktree: https://linktree.com/nizzola
