naming-conventions - name - snake case naming
Convenciones de nomenclatura para variables de "nĂºmero de foos" (10)
Supongamos que necesito almacenar el número de objetos foo en una variable.
Al no ser un hablante nativo de inglés, siempre me pregunto cuál es el mejor nombre (= corto 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é?
Como la variable almacena el recuento de la cantidad de objetos foo, fooCount
obtiene mi voto.
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 tú, debes ser constante (como debería);)
En fooCount
mayoría fooCount
como todo el mundo dijo. A veces es más apropiado usar foos
, generalmente cuando no tienes realmente la lista de foos, o no son objetos separados (por ejemplo, seconds
, para una pizza puedes tener slices
, etc.)
Solo usa foos
cuando no haya posibilidad de confusión, cuando es obvio que nunca tendrás una lista de foos en este contexto.
En inglés, las palabras ''número'' y ''recuento'' pueden actuar como sustantivos o verbos, pero probablemente sea más común ver que ''número'' se usa como sustantivo y ''contar'' 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 Ruby podrías decir:
foos.count # Count how many elements in the array ''foos''
Aún así, esto devuelve un valor que representa el número de foos, que es exactamente lo que puede esperar si solo hace 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. Aquí hay otro ejemplo:
num_string
Al mirar ese nombre de variable, ¿podría 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 realmente en voz alta, 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.
Tiendo a usar fooCount o similar.
Utilizo para la cantidad de algo: somethingCount ( something_count )
Utilizo para el número de secuencia de algo: somethingIndex ( something_index ), porque la palabra "number" es ambigua ( significa la cantidad y el número de secuencia )
Voy por fooCount porque es sencillo, y creo que la palabra "count" es la más corta y la mejor que la describe, no "number of" o similar.
Voy por FOO_COUNT si necesita almacenarlo final y estático (si no necesita cambiarlo / si es una constante). (todas mayúsculas para constantes!)
Voy por conteo y lo llamo por Foo.count si realmente tiene que almacenarlo como un atributo para una clase que hizo, que es Foo.
¡legibilidad para usted y para su equipo!
Yo iría por fooCount
Yo personalmente iría por total_foos
o totalFoos
dependiendo del 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 un total
superior al total
.
fooCount
si la variable no es una constante, FOO_COUNT
si lo es. :RE