Código limpio 1: Nombres

Tiempo estimado de lectura: 15 minutos

Los programadores pasamos la mayor parte del tiempo dando mantenimiento a código creado con anterioridad o ampliándolo. Por eso es tan importante crear código de calidad como crear código que funcione. Cuando se crea “código limpio” es probable que nuestro código sobreviva por mucho más tiempo que cuando se programa solo para ejecución.

En esta serie encontrarás una recopilación de sencillos consejos para crear código mas legible.  Si deseas ser un programador respetado y distinguirte del montón es buena idea comenzar por aquí. Aplica lo aprendido y pronto te darás cuenta de que ya no necesitas darle vueltas y vueltas a tu código para recuperar el hilo de lo que estabas pensando la última vez que trabajaste en tu proyecto.

Volviendo al tema de este primer número comenzaremos por la elección de  nombres. Este aspecto es uno de los más descuidados en general y es sorprendente lo mucho que puede afectar el mantenimiento que un trozo de código se entienda o no. En fin, estas son las reglas sugeridas:

Usa nombres que revelen  intención

El nombre de una variable debe resolver todas las preguntas importantes.  ¿Qué representa la siguiente cadena?

String n;

¿Numero,nombre,nación? Imposible saber, nos obliga a revisar el contexto. Si todas las variables tienen este tipo de nombres, pues, buena suerte

Haz distinciones significativas

Tienes dos variables del mismo tipo, digamos contador. Uno lleva la cuenta de números primos encontrados y otra las veces que se ha realizado una cierta suma. Lo mas fácil y sencillo es lo siguiente:

int  contadorA =0;

int  contadorB=0

O algo por el estilo. Incluso parece elegante, pero es una trampa mortal. Cuando vuelvas a revisar el código probablemente no recuerdes que hacía cada uno y tendrás que repasar nuevamente la ejecución de tu código. Lo siguiente es mas sencillo:

int cuentaPrimos=0;

int cuentaAdiciones=0;

Usa nombres pronunciables

En el caso anterior también pudiste escoger:

int cntPrms=0;

int cntAdcns=0;

Que es mas o menos comprensible cuando se lee. Pero ¿Qué harás cuando necesites alguien necesite decirlo en una conversación? Recuerda que el objetivo principal de usar un lenguaje de programación y no lenguaje máquina es que el código también sea comprensible para los seres humanos.

Usa nombres que puedan ser buscados

Siempre piensa en los demás. mucha gente leerá tu código.  Si se busca una variable es mas sencillo encontrarla si tiene un nombre largo y si está aislada que si solo tiene una letra y está anidada entre 10 funciones. Esto no es encuentra a Waldo.

Los nombres de clases deben ser sustantivos y los de los métodos verbos

Recuerda que una clase es la representación de un objeto, sería confuso encontrar objetos llamados correr o leer. En todo caso una caminadora y un lector son objetos asociados a estas actividades.

Por otro lado los métodos son las operaciones que realiza un objeto y lo más lógico es que sus nombres usen verbos

No seas gracioso

Cadena mágica y diabólico pueden sonar graciosos al nombrar una clase o variable, hasta que le das mantenimiento a tu código o alguien mas tiene que hacerlo. En este caso lo último que harán será alabar tu buen sentido del humor.

Una palabra por concepto

Una vez que escogiste un nombre para una variable o método de algún tipo úsalo para todas las variables de tipo parecido. Ejemplo:

void escribirNota(){…Imprimir cadena}

void redactarCarta(){…Imprimir cadena}

Es una mala decisión si ambas solo imprimen cadenas tomadas de objetos distintos, porque hace pensar a quien revisa el código que tienen propósitos claramente distintos(recuerda: distinciones significativas). Lo mejor sería:

void escribirNota(){…Imprimir cadena}

void escribirCarta(){…Imprimir cadena}

Usa términos técnicos

Cuando se resuelve un problema de un ámbito específico lo mejor es usar el lenguaje de ese ámbito. Así nos valemos de un lenguaje ya creado que facilitará la comprensión de otros, incluso de expertos en el tema.

Añade contexto

Cuando las variables nombre, direccion y telefono estan dentro de una clase  podemos imaginarnos que se trata de datos personales, sin tener que mirar al nombre de la misma. Siempre que se pueda agrupa de esta forma tus estructuras de datos

No des pistas falsas

No llames a una variable ListaDeTelefonos a menos que sea una estructura de datos de tipo lista ni intentes reusar una variable llamada contador para almacenar otro tipo de datos. No ahorrarás mucha memoria pero crearás el caos.

Evita codificar

Ya es bastante complicado lidiar con la sintaxis de un lenguaje de programación como para estar aprendiendo los códigos de otros programadores. Intenta usar un lenguaje llano.

Referencias:

Clean Code: A Handbook of Agile Software Craftmanship.
Martin,Robert C.
Prentice Hall

Advertisements
Código limpio 1: Nombres

2 thoughts on “Código limpio 1: Nombres

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s