Corrigindo um erro de ortografia em um nome de método

73

Um dos métodos que comumente uso em nossa base de código é escrito incorretamente (e isso me antecedeu).

Isso realmente me irrita não simplesmente porque é digitado incorretamente, mas o mais importante é que eu sempre interpreto o nome errado na primeira vez que eu o digito (e então eu tenho que lembrar "Ah, certo, ele deveria estar mal escrito ..." ")

Estou fazendo algumas alterações em torno do método original. Devo aproveitar a oportunidade para apenas renomear o método de enlouquecer?

    
por One Two Three 11.06.2014 / 18:53
fonte

6 respostas

136

Should I take the opportunity to just rename the freaking method?

Absolutamente.

Dito isso, se seu código foi liberado como uma API, você também deve geralmente deixar o método com erros ortográficos e encaminhá-lo para o método corretamente nomeado (marcando-o Obsolete se o seu idioma suportar tais coisas.

    
por 11.06.2014 / 19:01
fonte
52

Há casos em que você deve evitar fazer essas refatorações:

  1. Se o método for usado em uma interface pública. Um exemplo canônico é o erro de ortografia do referenciador em Referenciador HTML , a ortografia errada é mantida, porque alterar a ortografia agora teria muitas repercussões.

  2. 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á sob testes é particularmente arriscado. Se você tiver muito tempo, comece adicionando testes; Se você trabalha sob pressão de tempo, correr o risco de introduzir bugs sutis não é a melhor coisa a fazer se você quiser enviar a tempo.

  3. Se o método puder ser usado de uma maneira incomum , o que torna seus usos praticamente impossíveis de encontrar (por meio de Ctrl + F ou por uma ferramenta de refatoração automatizada). 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 dentro de eval() é difícil de encontrar também. No PHP, variáveis variáveis podem causar problemas.

  4. 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 fornecida a outras equipes pode ser considerada uma interface pública.

  5. Se você lida com um projeto crítico para a vida. É provável que o erro de ortografia não seja importante demais para justificar alguns meses de papel para alterar o nome do método e garantir não fará com que nenhum paciente receba dez vezes a radiação autorizada ou qualquer lançador para calcular sua velocidade.

Em qualquer outra situação, sinta-se à vontade para renomear o método.

    
por 11.06.2014 / 19:24
fonte
30

Eu fiz isso há alguns meses (por diferentes razões). Os passos que eu dei (a linguagem era Perl):

  1. Renomeie o método. Alias o nome antigo para o novo nome (isso não deve quebrar nenhum código, pois o método pode ser chamado por qualquer um dos nomes).
  2. Informe o resto dos desenvolvedores sobre a mudança de nome e o motivo, dizendo a eles para usar o novo nome a partir de agora.
  3. Pressione a base de código para o nome antigo, corrija quaisquer ocorrências.
  4. Registre qualquer uso do nome antigo (usando o nome antigo que ainda deve funcionar no momento). Corrija esses casos.
  5. Espere (enquanto faz 4.), até não aparecerem mais entradas no log.
  6. Quebre o alias. Faça um método usando o nome antigo que lança uma exceção fatal com uma mensagem sobre a mudança de nome.
  7. Após algum tempo, remova o método com o nome antigo.

    É claro que sua milhagem varia.

por 12.06.2014 / 15:03
fonte
6

Uma boa maneira de não quebrar qualquer código existente seria encadear o novo nome do método ao antigo em um tal como

private void MyNewMethodName()
{
    TheOldMethodName();
}

e, em seguida, 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 erro ortográfico antigo da sua base de código. Eventualmente, você pode até mesmo copiar / colar o corpo do método no novo método e excluir o antigo.

/ Edit As ivo disse no comentário: Uma coisa ainda melhor seria mover o código de TheOldMethodName para o MyNewMethodName e chamar o novo método do antigo. Este também teria a vantagem de ajudar o desenvolvedor a entender onde o código pertence.

    
por 12.06.2014 / 16:05
fonte
1

Renomeando o método:

  • Faça isso com a refatoração para que você não tenha mais trabalho a fazer do que deseja
  • Se o seu IDE suportar o preenchimento automático, use-o ao fazer referência a esse método

Essas são duas opções que você poderia escolher. Eu preferiria a conclusão automática (ex. Eclipse IDE) e não precisaria digitar o nome do método. Indo para a renomeação; apenas certifique-se de descobrir o que chama esse método e alterar as referências diretas em cada lugar. A refatoração será sua amiga, mas tenha muito cuidado ao fazer isso.

    
por 11.06.2014 / 19:01
fonte
0

Eu geralmente recomendo sim, renomeie.

Outras respostas aqui listaram bons motivos 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 antigo método para chamar o novo método . Em seguida, marque o antigo como obsoleto se seu idioma for compatível.

    
por 13.06.2014 / 20:11
fonte