Tu código es una mierda…lo sabes y te llena de orgullo. No permitas que lo profanen ojos que no son dignos de mirarlo. Por eso debes seguir estas sencillas normas para castigar a quien ose mirar tu código.
Es algo fundamental en cualquier buen código basura utilizar nombres confusos y poco descriptivos para los nombres de las variables, las funciones y las clases.
Muchos desarrolladores pierden el tiempo buscando nombres adecuados para describir bien su código, renombrando y refactorizando hasta llegar a sentir orgullo por su trabajo.
Pero tú no eres así, no te dejas tentar por los cantos de sirena del “código limpio”. Tú buscas que cada uno de los elementos de tu código sea un rompecabezas inescrutable.
Tomemos por ejemplo una sencilla función:
function calcularPrecioConImpuesto( $precioBase, $porcentajeImpuesto)
Esta función deja muy claro qué es lo que hace. Nos calcula el precio con impuesto y tiene como parámetros el precio base y el porcentaje del impuesto. Jamás, jamás, jamás hagas algo así si pretendes escribir buen código basura. Esto atenta contra los principios de todo mal desarrollador y debería estar totalmente prohibido.
Podemos “refactorizar” esta función para que cumpla con los estándares del código espagueti:
function calcular( $precio, $imp )
Es un principio, pero solo es una refactorización de principiantes. Se puede mejorar mucho:
function funcion1( $var1, $var2 )
Ahora sí, tenemos una función que no da absolutamente ninguna pista de lo que hace. Ya estamos acercándonos al nivel profesional.
Revisando el código de grandes profesionales del código espagueti he encontrado algunas joyas como éstas:
$variable
$variable1
$variabecita
$variablecitita
…
Esto es verídico, una acumulación tremenda de variables de distinta índole y función con nombres muy similares. Curiosamente, el que hizo esto era un portento y era capaz de entender su código incluso meses después de haberlo escrito.
Benditas letras
Es una práctica habitual entre los programadores usar las letras i, j, k para contadores. Pero ¿por qué limitarnos a los bucles for y while? Inundemos todo nuestro código con letras ¡tenemos un montón de letras en el alfabeto! Y si se nos terminan podemos añadir números $a1, $b1, $c1, etc.
La ventaja de las letras es que nos evitan el problema de buscar nombres imaginativos como $variablecitita. Si hay algo que caracterice a un mal programador es su tendencia al mínimo esfuerzo.
Los diferentes estilos
Cada lenguaje de programación tiene su propio estilo para nombrar variables, nombres de clases, funciones, tipos de datos y constantes:
nombreFuncion
nombre_funcion
NombreFuncion
…
Pero ¿por qué limitarlos a un único estilo? ¿No sería mejor mezclarlos todos de manera aleatoria e inconsistente?
Por ejemplo podríamos usar, dentro de una misma clase, unas funciones con un estilo y otras con uno totalmente diferente.
O incluso podríamos mezclar estilos para crear “La Supervariable”:
_variable_ConNombreCONFUSO
¿Quién podría recordar algo así?
Ya se, los editores modernos dan muchas ayudas a los programadores, pero con un poco de habilidad (por ejemplo usar todas las variables con un prefijo común) podemos hacer la vida más difícil a aquellos que quieran tocar nuestro código.
¿Has visto alguna vez barbaridades así? Compártelo con nosotros.
1 thought on “La guía definitiva del código espagueti II: Que tus variables y funciones confundan al enemigo”