web-dev-qa-db-fra.com

Correction d'une faute d'orthographe dans un nom de méthode

L'une des méthodes que j'utilise couramment dans notre base de code est mal orthographiée (et elle m'a précédé).

Cela m'irrite vraiment non seulement parce qu'il est mal orthographié mais plus important encore, cela me fait TOUJOURS me tromper de nom la première fois que je le tape (et ensuite je dois me rappeler "Oh, c'est vrai, il devrait être mal orthographié à ce sujet ...")

Je fais quelques changements autour de la méthode d'origine. Dois-je profiter de l'occasion pour renommer simplement la méthode flippante?

73
One Two Three

Dois-je profiter de l'occasion pour renommer simplement la méthode flippante?

Absolument.

Cela dit, si votre code a été publié en tant qu'API, vous devez également généralement laisser la méthode mal orthographiée et la transmettre à la méthode correctement nommée (en la marquant Obsolète si votre langue prend en charge de telles choses).

136
Telastyn

Il y a des cas où vous devriez éviter de faire de tels refactorings:

  1. Si la méthode est utilisée dans une interface publique. Un exemple canonique est la faute d'orthographe de referrer in Référent HTTP , la mauvaise orthographe est conservée, car la modification de l'orthographe aurait trop de répercussions.

  2. Si la base de code n'est couverte par aucun test. Any le refactoring doit être fait sur le code testé afin d'être capable de faire des tests de régression. La refactorisation de la base de code non testée est particulièrement risquée. Si vous avez beaucoup de temps, commencez par ajouter des tests; si vous travaillez sous la pression du temps, prendre le risque d'introduire des bogues subtils n'est pas la meilleure chose à faire si vous souhaitez livrer à temps.

  3. Si la méthode pouvait être utilisée de manière inhabituelle , ce qui rend ses utilisations pratiquement impossibles à trouver (via Ctrl + F ou par un outil de refactoring automatisé). Par exemple, en C #, une méthode peut être appelée via Reflection, ce qui rend la boîte de dialogue Renommer de Visual Studio inefficace. En JavaScript, la fonction appelée inside eval() est également difficile à trouver. En PHP, les variables variables peuvent provoquer des problèmes.

  4. Si la taille du projet est énorme et que la méthode pourrait être utilisée par d'autres équipes. Ceci est similaire au premier point, c'est-à-dire que l'interface que vous fournissez aux autres équipes peut être considérée comme une interface publique.

  5. Si vous traitez un projet vital. Il y a de fortes chances que l'orthographe ne soit pas trop importante pour justifier quelques mois de paperasse afin de changer le nom de la méthode et assurez-vous qu'elle n'entraînera aucun patient à recevoir dix fois le rayonnement autorisé ou une navette pour mal calculer sa vitesse.

Dans toute autre situation, n'hésitez pas à renommer la méthode.

52
Arseni Mourzenko

Je l'ai fait il y a quelques mois (pour différentes raisons). Les étapes que j'ai prises (la langue était Perl):

  1. Renommez la méthode. Alias ​​l'ancien nom au nouveau nom (cela ne doit pas casser de code, car la méthode peut être appelée par l'un ou l'autre nom).
  2. Informez le reste des développeurs du changement de nom et pourquoi, en leur disant d'utiliser désormais le nouveau nom.
  3. Grep la base de code pour l'ancien nom, corrigez toutes les occurrences.
  4. Enregistrez toutes les utilisations de l'ancien nom (l'utilisation de l'ancien nom devrait toujours fonctionner à ce moment). Corrigez ces cas.
  5. Attendez (tout en faisant 4.), jusqu'à ce qu'aucune autre entrée n'apparaisse dans le journal.
  6. Brisez l'alias. Créez une méthode utilisant l'ancien nom qui lève une exception fatale avec un message sur le changement de nom.
  7. Après un certain temps, supprimez la méthode avec l'ancien nom.

    Bien sûr, votre kilométrage variera.

30
Abigail

Une bonne façon de ne casser aucun code existant serait de chaîner le nouveau nom de méthode à l'ancien dans un tel que

private void MyNewMethodName()
{
    TheOldMethodName();
}

puis marquez l'ancienne méthode comme obsolète (si votre langue le prend en charge). De cette façon, tout code existant fonctionnera toujours et vous pouvez progressivement supprimer toutes les anciennes fautes d'orthographe de votre base de code. Finalement, vous pouvez même copier/coller le corps de la méthode dans la nouvelle méthode et supprimer l'ancienne.

/ Edit Comme ivo l'a dit dans le commentaire: Une meilleure chose à faire serait de déplacer le code de TheOldMethodName vers MyNewMethodName et d'appeler la nouvelle méthode à partir de l'ancienne. Celui-ci aurait également l'avantage d'aider le développeur à comprendre où appartient le code.

6
Rémi

Renommer la méthode:

  • Faites-le en refactorisant de peur d'avoir plus de travail à faire que vous ne le souhaitez
  • Si votre IDE prend en charge la saisie semi-automatique, utilisez-le pour référencer cette méthode

Ce sont deux options que vous pourriez choisir. Je préférerais l'auto-complétion (ex. Eclipse IDE) et pas besoin de taper le nom de la méthode. Aller pour le renommer; assurez-vous simplement de savoir ce qui appelle cette méthode et de modifier les références directes à chaque endroit. Le refactoring sera votre ami pour cela, mais soyez très prudent lorsque vous le faites.

1
Mushy

Je recommanderais généralement oui, renommez-le.

D'autres réponses ici ont énuméré de bonnes raisons pour lesquelles vous ne voudrez peut-être pas le renommer, donc si vous vous trouvez dans une telle situation, vous pouvez créer une nouvelle méthode avec le nom et l'implémentation appropriés, et changer l'ancienne méthode en appeler la nouvelle méthode. Marquez ensuite l'ancien comme obsolète si votre langue le prend en charge.

0
Brian