Um dos métodos que eu normalmente uso em nossa base de código está incorreto (e me antecedeu).
Isso realmente me irrita não apenas porque está escrito incorretamente, mas, o mais importante, sempre me leva a errar o nome na primeira vez em que o digito (e depois me lembro "Oh, certo, isso deve ser escrito incorretamente ...")
Estou fazendo algumas alterações em relação ao método original. Devo aproveitar a oportunidade para renomear o método em pânico?
refactoring
Um dois três
fonte
fonte
Respostas:
Absolutamente.
Dito isto, se o seu código foi lançado como uma API, você também deve geralmente deixar o método com erros ortográficos e encaminhar para o método nomeado corretamente (marcando-o como Obsoleto se seu idioma suportar essas coisas).
fonte
Há casos em que você deve evitar fazer essas refatorações:
Se o método for usado em uma interface pública. Um exemplo canônico é o erro de ortografia do referenciador no referenciador HTTP , a ortografia incorreta sendo mantida, porque a alteração da ortografia agora teria muitas repercussões.
Se a base de código não for coberta por nenhum teste. Qualquer refatoração deve ser feita no código testado para poder fazer o teste de regressão. Refatorar a base de código que não está sendo testada é particularmente arriscado. Se você tiver muito tempo, comece adicionando testes; se você trabalha com pressão de tempo, correr o risco de introduzir bugs sutis não é a melhor coisa a fazer se você quiser enviar a tempo.
Se o método puder ser usado de maneira incomum , o que torna praticamente impossível seu uso (por meio de Ctrl + F ou de uma ferramenta de refatoração automática). Por exemplo, em C #, um método pode ser chamado por meio do Reflection, tornando a caixa de diálogo Renomear do Visual Studio ineficaz. Em JavaScript, a função chamada inside também
eval()
é difícil de encontrar. No PHP, variáveis variáveis podem causar problemas.Se o tamanho do projeto for enorme e o método puder ser usado por outras equipes. Isso é semelhante ao primeiro ponto, ou seja, a interface que você fornece a outras equipes pode ser considerada uma interface pública.
Se você lida com um projeto de vida crítica. As chances são de que o erro de ortografia não seja importante demais para justificar alguns meses de papelada para alterar o nome do método e garantir que ele não faça com que nenhum paciente receba dez vezes a radiação autorizada ou qualquer lançadeira para calcular mal sua velocidade.
Em qualquer outra situação, fique à vontade para renomear o método.
fonte
Eu fiz isso alguns meses atrás (por diferentes razões). Os passos que tomei (o idioma era Perl):
Após algum tempo, remova o método com o nome antigo.
Obviamente, sua milhagem varia.
fonte
Uma boa maneira de não quebrar nenhum código existente seria encadear o novo nome do método para o antigo
e marque o método antigo como obsoleto (se o seu idioma suportar isso). Dessa forma, qualquer código existente ainda funcionará e você poderá remover gradualmente todo o antigo erro de ortografia da sua base de código. Eventualmente, você pode até copiar / colar o corpo do método no novo método e excluir o antigo.
/ Edit Como o ivo disse no comentário: Uma coisa ainda melhor a fazer seria mover o código para
TheOldMethodName
dentro doMyNewMethodName
e chamar o novo método do antigo. Este também teria a vantagem de ajudar o desenvolvedor a saber onde o código pertence.fonte
Renomeando o método:
Essas são duas opções pelas quais você poderia escolher. Eu preferiria o preenchimento automático (por exemplo, IDE Eclipse) e não precisaria digitar o nome do método. Indo para o renomear; apenas descubra o que chama esse método e altere as referências diretas em cada local. A refatoração será sua amiga, mas tenha muito cuidado ao fazê-lo.
fonte
Eu geralmente recomendaria sim, renomeá-lo.
Outras respostas aqui listaram boas razões para você não querer renomeá-lo, portanto, se você se encontrar em uma dessas situações, poderá criar um novo método com o nome e a implementação adequados e alterar o método antigo para chamar o novo método . Em seguida, marque o antigo como obsoleto se o seu idioma suportar.
fonte