2010-09-18 22 views
46

Supongamos que necesito almacenar el número de objetos foo en una variable.Convenciones de nomenclatura para las variables "número de foos"

No siendo un hablante nativo de inglés, siempre me pregunto cuál es el mejor nombre (= breve e inmediatamente claro) para esa var.

foo_num? num_foo? no_foo? foo_no? ¿o algo mas? El nombre completo debe ser number_of_foos, pero es un poco detallado.

¿Cuál es tu favorito y por qué?

+0

Me gustó la respuesta de fooCount, pero no creo que number_of_foos sea demasiado larga, pero supongo que depende de qué es realmente "foo". – Chance

+0

Y también lo que quiere hacer con la variable. Las expresiones aritméticas con 'number_of_foos' se vuelven engorrosas rápidamente. – user7610

Respuesta

17

Voy por fooCount porque es sencillo, y creo que la palabra "contar" es la más corta y la mejor que la describe, no "número de" o similar.

Voy por FOO_COUNT si necesita almacenarlo final y estático (si no necesita cambiarlo/si es una constante). (todas las mayúsculas para las constantes!)

Voy por el recuento y llamándolo por Foo.count si realmente tiene que almacenarlo como un atributo para una clase que ha creado, que es Foo.

legibilidad para usted y para su equipo!

20

Dado que la variable almacena el recuento de la cantidad de objetos foo, fooCount obtiene mi voto.

+0

+1 para agregar un motivo (aunque el fraseo es bastante poco elegante). – delnan

+1

@delnan - Normalmente elaboraría pero estoy respondiendo desde mi teléfono. –

1

que tienden a utilizar fooCount o similar.

8

fooCount si la variable no es una constante, FOO_COUNT si lo es. : D

7

El kernel de Linux usa "nr_foo", que es mejor que "no_foo" (que parece una negación). Yo mismo tiendo a usar "fooCount" o "fooCnt", pero también a veces "numFoo". No estoy seguro de por qué vacila entre "fooCount" y "numFoo". Supongo que depende de mi estado de ánimo. Pero usted, debe ser coherente (como debería);)

+2

@rjack - "number" es vago, "count" es específico. Un número podría ser una identificación, por ejemplo. [Creo que McConnell hace este punto en "Code Complete", pero no tengo una copia conmigo.] Las abreviaturas de "number" más probablemente entendidas (aparte de los escritores de kernel de Linux) incluyen "nFoo" y "numFoo". –

+0

@Andy Thomas-Cramer - No tan confuso en mi humilde opinión: 'credit_card_nr' suena como" número de tarjeta de crédito ", mientras que' nr_credit_cards' suena como "número de tarjetas de crédito" y es más corto que 'credit_cards_count'. Suena bastante natural para mí (pero puedo estar equivocado ya que no soy un hablante nativo de inglés). – Giacomo

+0

@rjack Sería credit_card_count de todos modos, ya que generalmente no se pluralizan sustantivos cuando son parte de un compuesto. – siride

2

Mayormente fooCount como todos dijeron. A veces es más apropiado utilizar foos, por lo general cuando en realidad no tienen la lista de Foos, o no lo son objetos separados (por ejemplo seconds; para una pizza puede tener slices, etc.)

Sólo uso foos cuando no hay posibilidad de confusión, cuando es obvio que nunca tendrías una lista de foos en este contexto.

+0

Si usa 'foos' a veces para significar 'el número de' foo' objetos 'y otras veces para significar' la colección de 'foo' objetos, creo que eso podría generar confusión. –

+0

'slices' sonidos para mí como una matriz de objetos 'slice', que son parte de un objeto 'pizza'.Usaría 'sliceCount', o' nr_slices', o lo que sea (aún no lo he decidido: D) – Giacomo

+0

Sí, solo use eso cuando no haya posibilidad de condusión – configurator

9

En inglés, las palabras 'number' y 'count' pueden actuar como nombres o verbos, pero probablemente sea más común ver que 'number' se usa como sustantivo y 'count' como verbo. Por lo tanto, podría argumentar que 'el número de foos' o 'num_foo' suena más familiar que 'el recuento de foo' o 'cuenta_foo'. Ciertamente me parece más natural al hacer referencia a una cantidad que no cambia constantemente. La palabra "contar", incluso cuando se usa como sustantivo, me sugiere un valor que va aumentando con el tiempo.

Ruby y Python tienen métodos .count, que demuestran que la palabra se usa como verbo, en lugar de como sustantivo. En Rubí se podría decir:

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

embargo, este devuelve un valor que representa el número de Foos, que es exactamente lo que cabría esperar si sólo hecho referencia a una variable llamada 'foo_count'. Entonces, de alguna manera, el hecho de que 'foos.count' y 'foo_count' se parezcan es algo agradable.

'Número' puede ser ambiguo en algunos casos, ya que es común almacenar números que no representan una cantidad de algo. Otras personas ya han mencionado IDs y números de tarjetas de crédito. He aquí otro ejemplo:

num_string 

cuanto a que nombre de la variable, se puede adivinar lo que representa? ¿Es un número entero que representa la cantidad de cadenas, o es una representación de cadena de un número?

Así que estoy pensando en voz alta realmente, y dando algunos pros y contras para cada uno como los veo. La razón por la que estoy incluso en esta página anterior es porque me encuentro usando los dos inconsistentemente y pensé que vería lo que otras personas están haciendo.

Por cierto, no me gusta 'nr_foo', ya que 'nr' en realidad no sugiere ni me suena a la palabra 'número' en absoluto. Suena como 'ner', o tal vez significa 'no calificado' o 'rugby nacional'. :-) Y ni siquiera me atreveré a decir cómo suena FooCnt. Simplemente no.

0

que utilizo para la cantidad de tantos: somethingCount (something_count)

que utilizo para el número de secuencia de tantos: somethingIndex (something_index), porque la palabra "número" es ambiguo (significa que la cantidad y el número de secuencia)

2

yo personalmente iría por total_foos o totalFoos dependi ng en el estándar de idioma. Representa mejor que el valor sea un total final y no solo un recuento continuo.

También tiene más sentido decir "Tengo 3 foos en total" en lugar de "Tengo 3 recuentos de foos".

En general, no es un gran problema, pero siempre uso total sobre count!

Cuestiones relacionadas