2010-06-05 27 views
9

Digamos que tengo una variable que contiene la cantidad de nombres de motores de búsqueda en un archivo, ¿cuál le gustaría nombrar?Nombres de variable largos

  • number_of_seach_engine_names
  • search_engine_name_count
  • num_search_engines
  • motores
  • engine_names
  • otro nombre?

El primer nombre describe con precisión qué contiene la variable, pero ¿no es demasiado largo ?, ¿algún consejo para elegir los nombres de las variables? especialmente cómo acortar un nombre que es demasiado largo o qué tipo de abreviaciones usar?

+3

He tenido la mala suerte de trabajar con muchas personas que lo llamarían 'nsen', o incluso' n'. Siempre y cuando los nombres de variables y funciones sean coherentes y descriptivos, no te preocupes demasiado (podrías considerar nombrar funciones como verbos para hacer que tu código "lea" mejor). Si alguna vez tuvo que mantener algún código con variables sin sentido, seguramente ha maldecido al autor (y el infierno tiene un lugar especial reservado para aquellos que tienen que mantener su propio código, tener problemas y aún así no cambiar sus formas) . – Mawg

+3

Hace mucho tiempo, solía cortar y pegar mis nombres de variables y funciones, pero hoy en día la mayoría de los IDE tienen código de finalización, así que sea descriptivo. Creo que la nomenclatura variable pobre es un "olor a código", y generalmente se encuentra junto con la falta de estructura, falta de comentarios, etc. Tal vez estoy yendo por la borda, pero ya no uso el tradicional (de Fortran) ' i, j, k' para variables de control de bucle. – Mawg

+0

Probablemente va a almacenar en una matriz o diccionario 'engines', luego diga' engines.count' o 'engines.len' o cualquiera que sea el nombre del método apropiado que sea – Brandin

Respuesta

19

¿Qué tal numEngineNames?

Elegir nombres de variables es más arte que ciencia. Quieres algo que no tome una época para escribir, pero lo suficiente como para ser expresivo. Es un equilibrio subjetivo.

Pregúntese, si alguien estuviera mirando el nombre de la variable por primera vez, ¿es razonablemente probable que esa persona comprenda su propósito?

6

Depende del alcance de la variable. Una variable local en una función corta generalmente no vale un "nombre perfecto", solo llámala engine_count o algo así. Por lo general, el significado será fácil de detectar, si no un comentario podría ser mejor que un nombre de variable de dos líneas.

variables de alcance más amplio - es decir, las variables globales (si son realmente necesario!), Las variables miembro - merecen mi humilde opinión, un nombre que es casi auto documental. Por supuesto, buscar la declaración original no es difícil y la mayoría de IDE lo hace automáticamente, pero el identificador de la variable no debería carecer de sentido (es decir, number o count).

Por supuesto, todo esto depende mucho de su estilo de codificación personal y las convenciones en su lugar de trabajo.

12

Un nombre es demasiado largo cuando existe un nombre más corto que transmite por igual el propósito de la variable.

Creo que engineCount estaría bien aquí. El número de nombres de motor es presumiblemente igual al número de motores.

Consulte la publicación de JaredPar.

1

Si se trata de una variable local en una función, probablemente lo llamaría n, o quizás ne. La mayoría de las funciones solo contienen dos o tres variables, por lo que un nombre largo es innecesario.

+7

No estoy de acuerdo, y ciertamente depende de la función, pero la variable debería ser lo suficientemente descriptivo como para transmitir lo que significa. Si solo se trata de una función de tres líneas y n se establece en motores. Contestar en la primera línea, entonces el significado es obvio. Pero a medida que la función crece, el uso de n podría estar cada vez más lejos de cómo se inicializó, el nombre tiene menos significado. En general, creo que los nombres de 1 y 2 caracteres deben reservarse exclusivamente para variables desechables de corta duración, como variables de bucle y parámetros lambda. –

+0

@Anthony A medida que la función crece, se debe refactorizar en funciones más cortas. –

+5

No estoy hablando de funciones que se extienden por cientos de líneas o incluso docenas. Pero, ¿qué tan difícil es darle significado al nombre? Piensa en la pobre savia que va a tener que mirar ese código en algún momento, y considera que la pobre savia eres tú. –

-2

Depende de la vida útil o de los fines previstos. Sin embargo, eso incluye la vida del desarrollo. Recientemente nombré un vector "cosas" porque era solo para uso en un experimento.

Si una variable solo se declara o define justo al lado de su uso, entonces no me molestaría con un nombre expresivo. Si no, buscaría un nombre de talla médica. Nunca puedo entender por qué las personas usarían nombres, digamos, por encima de 10 caracteres. Algo como enames sería mi elección para tu pregunta.

2

depende del contexto, si su es una variable local, como por ejemplo

int num = text.scan(SEARCH_ENGINE_NAME).size(); 

el más explícito de la derecha de la expresión más corto es el nombre me quedaría. Lo racional es que estamos en un alcance limitado de quizás 4-5 líneas y, por lo tanto, podemos suponer que el lector podrá establecer la conexión entre el nombre corto y la expresión del lado derecho. Sin embargo, si es el campo de una clase, prefiero ser lo más detallado posible.

2

ver similares question

El primary technical imperative es reducir la complejidad. Las variables deben nombrarse para reducir la complejidad. A veces, esto da como resultado nombres más cortos, a veces nombres más largos. Por lo general, corresponde a lo difícil que es para un mantenedor comprender la complejidad del código.

En un extremo de los espectros, tiene para iteradores de bucle e índices. Estos pueden tener nombres como i o j, porque son así de simples y comunes. Darles nombres más largos solo causaría más confusión.

Si una variable se usa con frecuencia pero representa algo más complejo, debe darle un nombre claro para que el usuario no tenga que volver a aprender lo que significa cada vez que la usa.

En el otro extremo del espectro hay variables que se usan muy raramente. Todavía desea reducir la confusión aquí, pero darle un nombre corto es menos importante, porque la penalidad por volver a aprender el propósito de la variable no se paga con mucha frecuencia.

1

Al pensar en su código, intente verlo desde la perspectiva de otra persona. Esto ayudará no solo a elegir nombres, sino también a mantener su código legible como un todo.

Tener nombres de variables realmente largos complicará la legibilidad de su código, por lo que desea evitarlos. Pero en el otro extremo del espectro, querrás evitar nombres ultra cortos o acrónimos como "n" o "ne". Los nombres cortos y crípticos como estos harán que alguien intente leer su código para arrancarse el pelo. Por lo general, las variables de una o dos letras se usan para tareas pequeñas como, por ejemplo, incrementarse en un bucle for.

Así que lo que queda es un equilibrio entre estos dos extremos. "Num" es una abreviatura comúnmente utilizada, y cualquier programador semi-experimentado sabrá lo que quiere decir inmediatamente. Así que algo como "numEngines" o "numEngineNames" funcionaría bien. Además de esto, también puede poner un comentario en su código al lado de la variable la primera vez que se usa. Esto le permitirá al lector saber exactamente lo que está haciendo y ayudará a evitar cualquier posible confusión.

1

Lo llamaría "search_engine_count", porque contiene un recuento de los motores de búsqueda.

0

Uso Esc + _ + Esc a escribir:

this_is_a_long_variable = 42 

Esc + _ + Esc y _ no son caracteres idénticos en Mathematica. Es por eso que puedes usar lo primero pero no lo último.

+0

El crédito va a jVincent https://mathematica.stackexchange.com/a/31785/47875 – Miladiouss

Cuestiones relacionadas