Bien que grammaticalement incorrect, lors de l'écriture d'identifiants pour des fonctions, des variables, etc., est-il logique d'ajouter simplement un "s" aux pluriels de mots se terminant par Y? Ma raison en est que si vous devez rechercher et remplacer, par exemple, en remplaçant "entreprise" par "fournisseur", "entreprise" correspondrait à la fois au singulier et au pluriel (" entreprise et" entreprise s "), alors que si le pluriel était correctement orthographié, vous devrez effectuer deux recherches distinctes.
9
Réponses:
Ces recherches et remplacements doivent être effectués avec soin et chaque modification doit être vérifiée manuellement, par exemple pour éviter que "accompagne" dans un commentaire ne devienne "fournisseur" avec le changement de votre société / fournisseur. En tant que tel, deux recherches distinctes pour «société» et «sociétés» ne devraient pas créer de frais généraux importants par rapport au temps passé à inspecter et à approuver chaque modification.
Ainsi, les mots mal orthographiés pour effectuer une seule recherche offrent les inconvénients d'avoir l'air mauvais et d'être plus difficiles à lire qu'il ne devrait l'être, sans offrir aucun avantage évident.
la source
Je suppose que vous parlez de renommer les fichiers de code source. Avec les IDE d'aujourd'hui, cela devrait toujours être fait avec les outils de refactoring de l'IDE. Si votre IDE ne l'a pas, envisagez de passer à un autre IDE. La plupart des outils de refactoring IDE conservent également un historique de refactoring, vous donnant la possibilité de "défaire" rapidement si vous n'aimez pas les résultats du refactor. En utilisant la recherche / remplacement, il se peut que vous n'ayez pas la possibilité d'annuler l'ensemble des modifications (sauf si vous utilisez peut-être vos outils de contrôle de révision et revenez à la version précédemment validée). De plus, en utilisant des outils de refactorisation, vous êtes plus sûr de changer par inadvertance quelque chose que vous n'aviez pas l'intention de changer.
la source
Oui! Oui! Oui! Il est parfaitement logique de le faire. Et je le fais depuis des années.
Divulgation 1: l'anglais n'est pas ma langue maternelle.
Divulgation 2: Ma connaissance de la grammaire anglaise est considérablement meilleure que celle du locuteur natif moyen.
Divulgation 3: Quand il s'agit de communiquer avec les humains, je suis une grammaire nazie véhémente.
Et maintenant que ces divulgations sont à l'écart, permettez-moi de dire que la grammaire anglaise n'a pas sa place dans le code. Vous voyez, c'est pourquoi cela s'appelle du code et non de la prose . Il est censé avoir une certaine ressemblance avec un langage compris par les humains, à des fins de lisibilité, mais à part cela, ce dont nous avons le plus besoin du code n'est pas les qualités de la prose; ce sont d'autres qualités plus techniques, comme la précision , la non- ambiguïté et la justesse . C'est pourquoi la syntaxe C de
if( x != y ) y++;
est bien préférable à laIF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
syntaxe de Cobol. L'opportunité alléguée de compilateurs qui comprennent le langage naturel est une erreur, et ne me croyez pas sur parole, voyez ce qu'en dit Ol'Edsger:Edsger W. Dijkstra, Sur la folie de la "programmation en langage naturel" .Une autre qualité qui est importante est la calculabilité des identifiants . Le fait qu'une propriété appelée
Color
puisse toujours être lue via une méthode appeléegetColor()
et écrite via une méthode appeléesetColor()
est d'une importance capitale. Ces identifiants sont calculables à partir du nom de la propriété, vous n'avez donc pas à les connaître par cœur. Si un programmeur devait choisir une paire de méthodes appeléesgetColor()
d'une part, maiscolorize()
d'autre part, leurs collègues envisageraient à juste titre ce sabotage. Voilà à quel point la calculabilité des identifiants est importante.De plus, des outils de programmation peuvent être écrits (et beaucoup d'entre eux ont en fait été écrits, par exemple, Hibernate ) qui peuvent calculer ces noms. Sans calcul des noms d'identifiants, vous devrez utiliser une syntaxe supplémentaire (par exemple dans Hibernate, des annotations supplémentaires) pour spécifier précisément à chaque outil comment créer chaque nom d'identifiant unique, ou précisément quel nom ad hoc vous avez donné à chaque entité.
Ainsi, la calculabilité des identifiants est importante, alors que dans le même temps la grammaire anglaise n'est pas pertinente, (puisque nous ne faisons pas de programmation en langage naturel), donc pour pouvoir calculer le nom d'une collection d'entités en ajoutant toujours "s" au nom d'un seul cas est parfaitement logique, sans parler du fait qu'il viole la sensibilité de la plupart des gens (y compris la mienne) à la langue anglaise.
Et que cela nous plaise ou non, telle est la tendance de l'avenir. La langue maternelle de la majorité des programmeurs de la planète n'est plus l'anglais, et la tendance est de continuer très fortement dans cette direction. (De plus, je ne serais même pas prêt à parier de l'argent sur la suggestion que l'anglais est la langue maternelle de la majorité des programmeurs travaillant aux États-Unis en ce moment.) Ce sont des gens qui, dans une large mesure, lorsqu'ils essaient de calculer le nom d'une collection à partir du nom d'une seule instance de "société", ajoutera simplement un "s", et la forme "sociétés" ne lui traversera même pas l'esprit. Pour un pourcentage important et toujours croissant de programmeurs dans le monde, la connaissance des particularités de la langue anglaise n'ajoute aucune valeur à leur travail, elle ne le rend que légèrement plus difficile.
la source
Companys
quand cela devrait êtreCompanies
. Après tout, l'intérêt du code que nous écrivons habituellement est en fait de le rapprocher du langage naturel.