122 votes

Conventions de nommage pour les variables "nombre de foos".

Supposons que je doive stocker le nombre d'objets foo dans une variable.

N'étant pas de langue maternelle anglaise, je me demande toujours quel est le meilleur nom (= court et immédiatement clair) pour cette var.

foo_num ? num_foo ? no_foo ? foo_no ? ou autre chose ?

Le nom complet doit être number_of_foos mais c'est un peu verbeux.

Quel est votre préféré et pourquoi ?

0 votes

J'ai aimé la réponse de fooCount, mais je ne pense pas que number_of_foos soit trop long, mais je suppose que cela dépend de ce qu'est réellement "foo".

0 votes

Et aussi ce que vous voulez faire avec la variable. Les expressions arithmétiques avec number_of_foos dans celui-ci deviennent rapidement encombrants.

0 votes

Duplicata possible de stackoverflow.com/questions/6358588/

77voto

ironmaurus Points 48

Je vais pour fooCount parce que c'est simple, et je pense que le mot "compter" est le plus court et le meilleur pour le décrire, pas "nombre de" ou autre.

Je vais pour FOO_COUNT si vous devez le stocker, il est définitif et statique (si vous n'avez pas besoin de le modifier/si c'est une constante). (tout en majuscules pour les constantes !)

Je vais pour count et l'appeler par Foo.count si vous devez vraiment le stocker comme attribut d'une classe que vous avez créée, ce qui est Foo .

la lisibilité pour vous et pour votre équipe !

0 votes

foosCount car le pluriel représente encore mieux un ensemble. Et il est censé s'agir d'un dénombrement d'un ensemble de choses.

2 votes

Mais cela dépend. Le pluriel convient bien à certains noms comme gamesIncludedCount mais le singulier sonne mieux pour d'autres noms tels que gameCount .

32voto

Justin Niessner Points 144953

Puisque la variable stocke le compte du nombre d'objets foo, fooCount obtient mon vote.

0 votes

+1 pour avoir ajouté une justification (bien que la formulation soit plutôt inélégante).

1 votes

@delnan - En temps normal, j'aurais élaboré, mais je réponds depuis mon téléphone.

22voto

Kal Points 710

En anglais, les mots "number" et "count" peuvent tous deux servir de noms ou de verbes, mais il est probablement plus courant de voir "number" utilisé comme un nom et "count" comme un verbe. On pourrait donc dire que "le nombre de foos" ou "num_foo" est plus familier que "le nombre de foo" ou "foo_count". En tout cas, cela me semble plus naturel lorsqu'il s'agit de faire référence à une quantité qui ne change pas constamment. Le mot "compter", même lorsqu'il est utilisé comme substantif, me suggère une valeur qui augmente au fil du temps.

Ruby et Python disposent de méthodes .count, qui démontrent que le mot est utilisé comme un verbe, plutôt que comme un nom. En Ruby, vous pourriez dire :

foos.count   # Count how many elements in the array 'foos'

Pourtant, cela renvoie une valeur représentant le nombre de foo, ce qui est exactement ce à quoi on pourrait s'attendre si l'on faisait simplement référence à une variable appelée 'foo_count'. Donc, d'une certaine manière, le fait que 'foos.count' et 'foo_count' se ressemblent est plutôt agréable.

Le terme "nombre" peut être ambigu dans certains cas, car il est courant de stocker des nombres qui ne représentent pas une quantité de quelque chose. D'autres personnes ont déjà mentionné les cartes d'identité et les numéros de carte de crédit. Voici un autre exemple :

num_string

En regardant ce nom de variable, pourriez-vous deviner ce qu'il représente ? S'agit-il d'un nombre entier représentant la quantité de chaînes de caractères, ou d'une représentation de chaîne de caractères d'un nombre ?

Je réfléchis donc à voix haute, et je présente les avantages et les inconvénients de chacun d'entre eux, tels que je les vois. La raison pour laquelle je suis sur cette vieille page est que je me retrouve à utiliser les deux de manière incohérente et j'ai pensé voir ce que les autres font.

D'ailleurs, je n'aime pas "nr_foo", car "nr" n'évoque pas du tout le mot "numéro". Cela ressemble à "ner", ou peut-être à "not rated" ou "rugby national" :-) Et je ne m'aventurerai même pas à dire à quoi ressemble fooCnt. Non, c'est tout.

17voto

siride Points 36602

Le noyau Linux utilise "nr_foo", qui est meilleur que "no_foo" (qui ressemble à une négation). J'ai moi-même tendance à utiliser "fooCount" ou "fooCnt", mais aussi parfois "numFoo". Je ne sais pas trop pourquoi je vacille entre "fooCount" et "numFoo". Je suppose que ça dépend de mon humeur. Mais vous, vous devriez être cohérent (tout comme moi) ;)

4 votes

@rjack - "nombre" est vague, "compte" est spécifique. Un nombre peut être un identifiant, par exemple. (Je pense que McConnell fait ce point dans "Code Complete", mais je n'ai pas de copie avec moi). Les abréviations de "number" plus susceptibles d'être comprises (autrement que par les auteurs du noyau Linux) incluent "nFoo" et "numFoo".

1 votes

Andy Thomas-Cramer - Ce n'est pas si compliqué que cela, à mon avis : credit_card_nr ressemble à "numéro de carte de crédit", tandis que nr_credit_cards ressemble à "nombre de cartes de crédit" et c'est plus court que credit_cards_count . Cela me semble tout à fait naturel (mais je peux me tromper puisque je ne suis pas de langue maternelle anglaise).

1 votes

@rjack Ce serait de toute façon credit_card_count, car on ne met généralement pas les noms au pluriel lorsqu'ils font partie d'un composé.

8voto

Gordon Gustafson Points 14778

fooCount si la variable n'est pas une constante, FOO_COUNT si c'est le cas. :D

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X