Pregunta

Hay muchos estilos diferentes de nombres de variables que he encontrado a lo largo de los años.

La entrada actual de wikipedia sobre convenciones de nombres es bastante ligera ...

Me encantaría ver un catálogo conciso de convenciones de nombres variables, identificándolo por un nombre / descripción, y algunos ejemplos.

Si una convención es particularmente favorecida por una determinada comunidad de plataformas, eso también valdría la pena señalar.

Estoy convirtiendo esto en una wiki comunitaria, así que cree una respuesta para cada convención y edítela según sea necesario.

¿Fue útil?

Solución

El mejor conjunto de convenciones de nombres que he visto está en el libro " Código Completo " Steve McConnell tiene una gran sección de convenciones de nombres y muchos ejemplos. Sus ejemplos recorren una serie de " mejores prácticas " para diferentes idiomas, pero en última instancia, le corresponde al desarrollador, al administrador de desarrollo o al arquitecto decidir la acción específica.

Otros consejos

PEP8 es la guía de estilo para el código Python que forma parte de la biblioteca estándar que es relativamente influyente en la comunidad Python. Para los puntos de bonificación, además de cubrir las convenciones de denominación utilizadas por la biblioteca estándar de Python, proporciona una descripción general de las convenciones de denominación en general.

De acuerdo con PEP8: se supone que las variables, las variables de instancia, las funciones y los métodos en la biblioteca estándar usan palabras en minúsculas separadas por guiones bajos para facilitar la lectura:

foo
parse_foo
a_long_descriptive_name

Para distinguir un nombre de una palabra reservada, agregue un guión bajo:

in_
and_
or_

Los nombres que son débilmente privados (no importados por 'desde M import *') comienzan con un solo guión bajo. Los nombres cuya privacidad se aplica con el cambio de nombre comienzan con guiones bajos dobles:

_some_what_private
__a_slightly_more_private_name

Los nombres que son métodos "especiales" de Python comienzan y terminan con dos guiones bajos:

__hash__  # hash(o) = o.__hash__()
__str__   # str(o) = o.__str__()

Sun publicó una lista de convenciones de nombres de variables para Java aquí . La lista incluye convenciones para nombrar paquetes, clases, interfaces, métodos, variables y constantes.

La sección sobre estados de variables

  
    

A excepción de las variables, todas las constantes de instancia, clase y clase están en mayúsculas y minúsculas con una primera letra en minúscula. Las palabras internas comienzan con letras mayúsculas. Los nombres de variables no deben comenzar con caracteres de subrayado _ o signo de dólar $, aunque ambos estén permitidos.

         

Los nombres de las variables deben ser cortos pero significativos. La elección del nombre de una variable debe ser mnemotécnica, es decir, diseñada para indicar al observador casual la intención de su uso. Deben evitarse los nombres de variables de un solo carácter, excepto el " throwaway " variables Los nombres comunes para las variables temporales son i, j, k, m y n para enteros; c, d, y e para caracteres.

  

Algunos ejemplos incluyen

int             i;
char            c;
float           myWidth;

Cualquiera que sea su convención de nomenclatura, generalmente no le permite distinguir fácilmente:

  • variable de instancia (generalmente privada)
  • variables locales (utilizadas como parámetros o locales a una función)

Uso una convención de nomenclatura basada en el uso de artículo indefinido (una, una , algunas) para variables locales, y ningún artículo para variables de instancia, como se explica en esta pregunta sobre prefijo de variable .

Entonces, un prefijo (a mi manera, o cualquier otro prefijo listado en esa pregunta ) puede ser una forma de refinar la convención de nomenclatura variable .

Sé que su pregunta no se limita a las variables, solo quería señalar esa parte de la convención de nomenclatura.

Hay, el " Libro de frases de los programadores de Java " de Einar Hoest.

Analizó la estructura gramatical de los nombres de los métodos junto con la estructura de los cuerpos de los métodos, y recopiló información como:

  

add- [noun] - * Estos métodos a menudo tienen parámetros y crean objetos.   Rara vez devuelven valores de campo.   La frase aparece en prácticamente todos   aplicaciones.

etcétera ... recopilada de cientos de proyectos de código abierto.

Para más información de fondo, consulte su SLE08 papel .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top