Lors de l'examen du code d'un collègue, je suis tombé sur des fautes d'orthographe dans les noms de fonction et également sur des erreurs grammaticales comme doesUserHasPermission()
au lieu de doesUserHavePermission()
dans les noms de fonction et de variable.
Dois-je le lui signaler ou suis-je trop pédant en le remarquant?
Le code avec des erreurs d'orthographe et de grammaire est impossible à maintenir .
Les gens ne se souviendront pas de la mauvaise grammaire, ils essaieront donc d'appeler la fonction telle qu'elle aurait dû être écrite, et c'est ainsi que les bugs se produisent.
Vous ne pouvez pas chercher quelque chose dans le code si vous ne savez pas comment il est orthographié.
La plupart des personnes qui font de la grammaire/de l'orthographe le font de manière incohérente, donc ils introduiront de nombreux bugs avec des noms qui ne correspondent pas. Cela est particulièrement problématique dans les langages qui ne nécessitent pas de déclaration explicite des variables avant utilisation, car vous pouvez introduire une nouvelle orthographe et votre code ne s'arrêtera pas pour vous faire savoir que vous avez foiré.
La correction de ces problèmes n'est pas pédante, et elle n'est pas non plus rendue nécessaire principalement par les opinions des autres sur son intelligence, sa littératie, etc. (bien que ce soit un gros effet secondaire); il s'agit d'écrire qualité, code maintenable.
Oui définitivement. Il est plus facile de se souvenir du nom s'il est grammaticalement correct. Essayer de se souvenir du nom et des erreurs de grammaire est une tout autre chose.
Ne les signalez pas comme des défauts dans une révision formelle du code. Au lieu de cela, marquez une liste et parlez-en en privé avec eux. Soyez aussi diplomate que possible à ce sujet, juste "Hé, quelque chose que j'ai remarqué, et j'ai rencontré des gens qui regardent VRAIMENT ce genre de chose, ils pensent que cela rend le programmeur imprudent et bâclé."
S'il s'agit d'un code qu'un client va voir, il DOIT absolument être corrigé. Qu'on le veuille ou non, cela réfléchit à la réputation de votre entreprise.
Pour l'exemple que vous avez donné, je soupçonne que cela a commencé comme UserHasPermission, et quelqu'un d'autre lui a dit que la pratique locale était doUserBlahBlah () plutôt que UserBlahBlah (), et il a juste ignoré le changement de grammaire.
Modifiez-le vous-même.
J'espère que vous êtes dans un environnement où la "propriété" du code n'est pas un problème. Si vous avez accès au projet dans le contrôle de code source, allez simplement le réparer vous-même. Si vous voyez un collègue particulier faire le même type de grammaire ou d'orthographe de manière cohérente, vous voudrez peut-être le signaler, mais cela dépendra de votre relation, que la personne soit de langue maternelle anglaise et de sa réceptivité générale. Mais que vous décidiez de le faire ou non, allez tranquillement et faites le correctif. Je le fais tout le temps, si je vois une faute de frappe, en particulier dans une signature de méthode ou une propriété publique, je le corrige. Parfois, je ne peux même pas résister à la tentation de corriger une faute de frappe dans un commentaire, mais c'est juste moi :)
Je suppose qu'il vaut la peine de mentionner ici que l'en-tête de référence HTTP dans le protocole HTTP a été mal orthographié comme "référent" (et nous devons vivre avec/nous avons appris à vivre avec.) :)
Je suis un développeur dont la langue maternelle n'est pas l'anglais, c'est le néerlandais en fait, et cela ne me dérangerait pas du tout si quelqu'un me montrait une erreur de grammaire ou d'orthographe. De cette façon, je peux constamment améliorer mon anglais. Et il n'est certainement pas difficile de corriger toutes les erreurs dans tout votre code source. Un simple script Perl peut facilement être écrit pour parcourir tous les fichiers d'un dossier. Peut-être même que cela peut être fait avec sed? Je ne sais pas.
Je voudrais donc certainement signaler des fautes de grammaire ou d'orthographe dans le code de quelqu'un d'autre, mais seulement si je suis absolument sûr que c'est correct ce que je dis.
Je suis d'accord avec d'autres réponses disant que le code avec des erreurs de grammaire est impossible à maintenir.
Je veux également ajouter quelques éléments:
Je recommanderais d'utiliser un IDE avec correcteur orthographique intégré. IntelliJ Idea fait un excellent travail pour les programmes Java. Il existe de nombreuses fautes de frappe embarrassantes qu'il détecte, non seulement dans les noms des fonctions, mais dans les messages d'exception par exemple, l'utilisateur peut voir. Un programme qui produit des messages pleins de fautes de frappe n'inspire pas beaucoup de confiance.
Il s'agit d'une erreur mineure dans le code, mais c'est une erreur. Traitez-le comme toute autre erreur que vous trouvez. Ma politique est toujours de supposer que mes collègues sont compétents et de les traiter de cette façon jusqu'à preuve du contraire.
S'il s'agit d'une seule erreur, je pourrais simplement la corriger et l'enregistrer. Si c'est un modèle, je pourrais commencer à demander à ce collègue de revoir ces correctifs. Faites-leur savoir que vous pensez qu'ils sont un bon codeur, mais que c'est quelque chose qu'il serait bon d'améliorer. Je ne pense pas que je ferais un gros problème à propos de quelque chose comme ça.
Tant que vous ne le traitez pas comme si c'était un gros problème, il devrait être facile de mettre ce collègue dans une position où il peut s'améliorer sans mettre l'ego en jeu.
La règle d'or s'applique
Faites aux autres ce que vous voudriez qu'ils vous fassent.
Je veux que les autres me soutiennent sur ce genre de chose, alors j'aide les autres. Être courtois et solidaire peut vous aider grandement.
Comme pour de nombreuses autres bonnes pratiques de programmation, le seul moyen objectif, apolitique et efficace de mettre en œuvre une politique d'orthographe dans les programmes est de l'automatiser dans le cadre du processus de pré-validation. L'automatisation vous évitera d'énormes quantités de doléances même si vous devez écrire votre propre outil à cet effet.
Je ne le fais que si
Juste comme remarque, si les noms de vos fonctions sont suffisamment longs pour avoir de la grammaire, ils sont probablement trop longs. Dans l'exemple donné, j'appellerais la fonction serHasPermission et déplacerais la "grammaire" dans votre code, quelque chose comme ceci:
if userHasPermission() ...
Cela se produit également BEAUCOUP dans mon projet (étant peuplé de personnes qui parlent hébreu, russe ou arabe nativement), mais même à un niveau supérieur - souvent je vois du code qui utilise une terminologie obscure qui se trouve être ce que le dictionnaire a produit comme traduction pour ce que l'auteur avait en tête, et cela n'a rien à voir avec ce qu'ils voulaient dire ...
Personnellement, lorsque cela se produit si fréquemment et par autant de membres de l'équipe qui auraient pu écrire le code avant même que je rejoigne le projet, j'ai tendance à l'ignorer, car cela n'a pas d'importance.
Cependant, si je commets un travail dans le même fichier que du code ou des commentaires qui ont été écrits il y a longtemps et qu'ils contiennent des fautes de frappe dans le, je les corrigerai simplement parce que ce n'est pas trop de travail.