Contenido

5 reglas para darle nombre a tus variables

28 Jul

+ 13

Como desarrolladores cada día tenemos que bautizar miles de variables, algunas poco importantes otras de las que depende el funcionamiento correcto de nuestra aplicación. Debido a esto debemos ser consecuentes y tener cuidado y un poco de orden a la hora de ponerles nombre.

Ian Hickman, propone 5 reglas básicas con las que nombrar fácilmente a nuestras variables:

  1. Crea nombres de variable largos y descriptivos. No seas vago y dale un nombre lo más descriptivo posible, piensa que dentro de 10 años tendrás que revisar ese código (a mi me vale).
  2. Pon las unidades en los nombres de la variable. Si tu variable informa una medida o algo que pueda ser contado debería incluirse la unidad de medida en la que está el valor de la misma.
  3. Si estás usando el «Camel Case», piensa en usar «Capitalize». Si los nombres de la variables están compuestos por más de una palabra, evita las mayusculas en la segúnda palabra. (ejemploVariable o Ejemplovariable) (Está es cuestión de gustos…)
  4. Nunca uses variables con nombre temp. Estas variables generalmente ensucian el código ya que no aportan nada, siempre mejor informar que están alojando en su interior aunque sean temporales.
  5. int i es perfecto para pequeños bucles. Nada de usar variables de una sola letra en bucles grandes, es realmente frustrante descifrar un código de 1000 líneas cargado de variables de una sola letra.

En conclusión, debemos pensar que el código SIEMPRE lo revisan un mínimo de 2 personas, en grupos de trabajo serán otros compañeros y en proyectos propios serás tu dentro de X meses (que será una persona completamente diferente que el que desarrolló la primera versión).

  • Otra regla que faltan sobre todo si se hacen programaciones o script públicos es el uso de prefijos. para evitar coincidencias.

    Estaría bien comentar , que luego para lenguajes no compilados , es ideal obfuscar el código o tener una versión igual , pero con variables lo más cortas posibles, en lenguajes como JS es indispensable , y en lenguajes como PHP etc.. el usar menos bytes libera trabajo al interprete. Saludos.

  • En el manual de buenos usos de Zend, sobre como trabajar con PHP, se habla que las variables deben ser caseCamel, lo contrario a lo que planteas aca, y si se hicera como dice esta regla, como seria casecamel??

    Quedaria un poco desprolijo y dificil de entender

  • como comenta pablo morales, recomiendan usar tanto en funciones como en variables nombres compuestos diminutivos, que den una descripción pero que no sean largos. También recomiendan usar el mínimo de variables posible.
    Después de pasarme años programando, creo que es una buena práctica además de que se tiende a ella de forma natural.

  • Puedo asegurarte que todo eso que comentas es verídico. Yo como consejo (en lo que se basa mi experiencia), aportar que un truco que me sirve a la hora de programar, es añadirle a la variable un identificativo del tipo de dato con el que estoy trabajando.

    Así, si trabajo con floats, con integers, o con chars, tan solo necesito mirar el nombre de la variable, para saber cual es el resultado esperado o con el que estoy trabajando.

    Y es que a veces, es mucho más rápido y eficaz, identificar una variable y su comportamiento por medio de iVariable, que examinar la implementación del código para saber con que tipo de datos estámos trabajando.

    Lo que comentas de los bucles es bien cierto, como se asocia a una porción de código poco significativa, pensamos que con añadir un simple nombre de variable, estamos servidos. Lástima cuando llevamos varias líneas de código, y solo vemos nombres y más nombres y nos olvidamos completamente de cuál era su función.

    Un saludo.

  • bueno tampoco es que deban ser demasiado largos los nombres de las variables. Muy buen post!

  • Para Pablo Morales:

    «En el manual de buenos usos de Zend, sobre como trabajar con PHP, »

    donde se puede encontrar dicho manual?

  • No estoy de acuerdo en que las variables deben ser demasiado largas y descriptivas de esa forma son muy tediosas de leer/escribir.
    Deben tener nombres nemotecnicos.
    Saludos.-

  • Sí Jonathan, es recomendable que tengan nombres nemotécnicos. Pero esos nombres nemotécnicos, han de ser explicativos para el programador, y no sólo para él, piensa que no serás el único que mirará el código fuente.

    Tu código, pasará a manos de otro programador, y por eso es recomendable que las variables tengan al menos, nombres explicativos. Para que la otra persona, no se pierda mientras revisa que hace cada instrucción del código.

    Sinceramente, las dos aportaciones que hacéis, son correctas, está bien usar nombres nemotécnicos, y nombres explicativos.

    No se trata de poner: Vector_registro_de_usuarios. Con un simple vAlta, o Valta, se sobreentiende que será un vector que contendrá cualquier parámetro relacionado con el alta de los usuarios.

    Un saludo.

  • Hola,

    Encontré la explicación de la tercera regla un tanto confusa, así que me fuí al sitio original, y dice algo diferente de lo que tú has puesto. Dice que si usas camelCase y vas a usar un nombre de variable que es una palabra compuesta, no deberías poner en mayúscula la primera letra de la segunda parte de esa palabra. Por ejemplo, si tu variable se llama rompeolas, no deberías llamarla rompeOlas, o si tu variable se llama sacacorchos, tampoco uses sacaCorchos.

    Saludos,
    Jake

  • @Jake: ¿no es eso lo que pone en la 3ra. opción? Quizas no quede demasiado claro, pero exactamente es lo que comentas.

    Usar Sacacorchos en lugar de sacaCorchos.

    Saludos

  • Bueno eso lo de las variables largas, como que no tan largas no?, pienso que se deberian poner como dicen arriba nombres nemotécnicos. yo las nombro en inglés, ya que en inglés se puede ahorrar palabras y/o caracteres.

  • Hola, lei los consejos y me quede perplejo con el numero 3. Evitar la mayuscula en la segunda palabra haria el codigo mas lento de leer.

    Fui al sitio original y definitivamente has puesto la traducción muy muy mal. El autor se refiere solamente a cuando es una palabra compuesta, no a cuando estas usando dos palabras, es decir:

    cajasVerdes esta bien.

    inVencible esta mal (y se ve mal).
    extraOrdinario esta mal (y se ve mal).

    De hecho creo que este punto aplica mas para el idioma ingles, aun asi otro consejo que yo doy es usar los nombres de las variables en ingles. Tambien se me hace importante reconocer cuando el nombre la variable debe ser plural y cuando singular.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.