Aquí está la traducción del artículo del blog Better Programming en el sitio web de Medium. En él, el programador Daan comparte reglas simples, siguiendo las cuales puede dar buenos nombres a funciones y variables.
Como desarrollador, probablemente pases mucho tiempo creando variables y creando sus nombres. Los nombres están en todas partes: son necesarios para archivos, clases, métodos y esas mismas variables.
Como pasamos tanto tiempo asignando nombres, es muy importante hacerlo de forma cualitativa. En este artículo, le contaré algunas reglas simples, después de las cuales puede crear buenos nombres. Después de todo, ¡esto es todo un arte!
Usa nombres que revelen tus intenciones
El nombre debe indicar el propósito del código. Es más fácil decirlo que hacerlo, ¿verdad? ¿Con qué frecuencia te encuentras con variables con nombres que no dicen nada sobre la intención del programador?
La regla es esta: si un nombre requiere comentario, no transmite intención.Hay una variable en este fragmento de código cuyo nombre no está claro:
<?php private $s;
La variable
$s
no nos dice nada y no está asociada con un período de tiempo. Es mejor elegir un nombre que indique qué y en qué unidades se mide.
Uno de los nombres a continuación sería más apropiado.
<?php private $days_since_creation; private $elapsed_time_in_seconds; private $seconds_since_last_modified;
Los nombres de intención hacen que el código sea más fácil de entender y, por lo tanto, más fácil de mantener.
Pasará tiempo eligiendo el nombre correcto, pero guárdelo en el futuro.
Considere este ejemplo:
<?php function getList() { $list1 = []; foreach ($this->the_list as $x) { if ($x % 2 != 0) { $list1[] = $x; } } return $list1; } function getOddNumbers() { $odd_numbers = []; foreach ($this->numbers as $number) { if (isOdd($number)) { $odd_numbers[] = $number; } } return $odd_numbers; }
¿Por qué es difícil entender qué hace la función
getList
? Sin expresiones complejas, el código está correctamente alineado y formateado, solo tres variables y nada más.
Ahora mire la función
getOddNumbers
. ¿
getList
que ella hace lo mismo que
getList
?
Tenga en cuenta que el código no se ha vuelto más complicado o más simple. Mantuvimos el número de operadores, variables y niveles de anidación, pero ahora es más claro y transparente.
Un pequeño cambio de nombre, y ya es mucho más fácil entender lo que está sucediendo.
Evitar la desinformación
Intente evitar asociaciones falsas que distorsionen el propósito del código.
No use palabras que puedan entenderse de una manera diferente a la que pretendía. Por ejemplo, no
productList
grupo de productos
productList
, a menos que sea realmente un objeto de tipo
List
. Tal nombre puede llevar a conclusiones falsas. Es mejor usar solo
products
.
Quizás los peores nombres para las variables comienzan con una letra
O
mayúscula y una
L
minúscula, ya que estos caracteres son muy similares a 0 y 1.
También tenga cuidado con los nombres que solo son ligeramente diferentes entre sí. ¿Cuánto tiempo pasará hasta que note una ligera diferencia entre
SomeMethodForEfficientHandlingOfFiles
en un archivo y
SomeMethodForEfficientStorageOfFiles
en otro? De acuerdo, a primera vista son idénticos.
Destacar diferencias significativas
Usar la numeración no es la mejor forma de nombrar. Dichos nombres no son informativos, ya que no revelan las intenciones del autor en absoluto.
Veamos el siguiente ejemplo:
<?php public function duplicateArray($arr1, &$arr2) { foreach ($arr1 as $key => $value) { $arr2[$key] = $value; } }
Este fragmento de código se leerá mejor si cambiamos el nombre de
$arr1
y
$arr2
a
$source
y
$destination
.
Usa nombres que puedas pronunciar
Si no puede pronunciar el nombre de la función, es poco probable que pueda hablar sobre ella y no parezca idiota. Esto es realmente importante porque discutir el código es parte de la programación. Sin embargo, cada uno de nosotros debe haber encontrado variables con nombres impronunciables.
Suponga que tiene una variable llamada
$xsq
y a menudo la discute con la compañía. Y aquí estás hablando con un colega:
- Bueno, ¿qué pasa con ex es quew?
- Con que? Con cola de acceso?
Algunos de los desarrolladores pronunciarán el nombre de la variable como una palabra, y algunos como una abreviatura.
Usar nombres de búsqueda
El problema con los nombres de una letra es que son difíciles de encontrar en el código.
Lo mismo con las constantes numéricas. Es mejor reemplazarlos con variables. Por ejemplo, el número 8 habitual puede causar muchos problemas si necesita encontrar algo en el código. Sin embargo, será mucho más fácil si reemplaza el número con algo como
MAX_BLOCKS_DISPLAYED
.
La única situación en la que vale la pena usar nombres de una sola letra es inventar nombres para variables locales dentro de métodos cortos.
Prefijos de miembros de la clase
No use m_ prefijos.
Algunos desarrolladores tienen la costumbre de usar un prefijo de subrayado delante de los miembros de la clase. No hagas eso. Sus clases y métodos deben ser lo suficientemente compactos para que no necesite ninguno de estos prefijos.
Alternativamente, puede usar el IDE (o instalar el complemento), que resalta las variables según su alcance.
Piense en su código como un lugar de picnic en el bosque: déjelo más limpio de lo que estaba antes de llegar.
Conclusión
Así es como se crean nombres más comprensibles para el código.
Comenta, deja tus preguntas y escribe si quieres que cubra otros temas relacionados con la programación.
Este artículo se inspiró en el libro Clean Code de Robert Martin, que recomiendo leer.