Lista larga de parámetros

Reduce los parámetros de tus funciones

Estaba programando una función en JavaScript, y la tenía que mandar a llamar en otros archivos, sin embargo, me di cuenta que cada vez que llamaba a esa función, era difícil acordarme de los parámetros.

Empezamos a programar sin saber las buenas prácticas, y así lo hacemos durante mucho tiempo, pensando que nuestro código es de calidad.

Pero no te preocupes, es algo que le pasa hasta los programadores más avanzados.

¿Qué son los parámetros?

Los parámetros, o también conocidos como argumentos, son los que están a la espera de obtener un valor desde donde se llame la función que las contiene.

Sí, son esas palabras que van dentro de los paréntesis de una función:

function myFunction( parameter1, parameter2, ... ) {}

Pero entre lenguajes de programación, estos parámetros podrían no representarse de la misma manera.

Tienes que verificar cómo lo hace tu lenguaje de programación favorito. 🙂

El problema de usar muchos parámetros

Les mencioné que hice mi función en JavaScript; pues así se veía:

function WPB_startAjaxRequest( event, formData, formId, ajaxAction, currentTask, shouldGetData, extraData, callback ) {
   // My code...
}

Una función con 8 parámetros. ¡¿En qué estoy pensando?!

En fin, no le hice caso a esa función, dejé que siguiera trabajando de esa forma, pero los problemas persistían:

¡Sigo sin acordarme del orden de los parámetros!

Entonces, ¿la función de arriba qué está provocando?

Para empezar:

  • Estoy usando las buenas prácticas de buen nombramiento, sin embargo, como mi función tiene más de 4 parámetros, no es para nada legible.
  • Es difícil recordar el tipo de dato que espera cada parámetro.
  • También es complicado recordar el orden de los mismos.

Los puntos anteriores solo te quitarán tiempo, tiempo valioso que podrías usar para programar, y tu código no será de calidad.

¡No hagas lo que yo hice!

Sólo usa 3 o 4 parámetros

Un día estaba leyendo el libro JavaScript: The Good Parts, y encontré una buena práctica, ésta decía que usar más de 3 o 4 parámetros en una función era una mala práctica.

Y la solución que presentaba el autor, era que si necesitabas usar más de 3 o 4 parámetros, éstos los pasaras a través de un objeto; es decir:

var myParameters = {
   ajaxAction:  'whatever',
   callback:    'startMyCallback()',
   currentTask: 'delete_everything'
};

WPB_startAjaxRequest( event, myParameters );

Tras aplicar ésta solución, mi función se había convertido en esto:

function WPB_startAjaxRequest( event, ajaxParameters ) {
   console.log( ajaxParameters );
   console.log( ajaxParameters.ajaxAction );
}

Es más legible, ¿no crees? De 8 parámetros, ahora tenemos 2.

Pero, ¡Ojo!, no porque yo esté usando JavaScript aquí, no significa que no funcione en otros lenguajes de programación. 😉

¿Qué ventajas obtienes?

Darle este tipo de soluciones a tu código, representa un gran avance a tu código, estás escribiendo código de calidad.

Además, te está aportando lo siguiente:

  • Código más legible.
  • El código se vuelve más corto.
  • Y ya no tenemos que acordarnos del orden de los parámetros.

¡Esto es lo que deberías estar haciendo en cada uno de tus desarrollos!

Uno de tantos code smells

El problema anterior es clasificado como un “code smell” (hediondez del código), y éste termino se refiere a que una parte del código tiene alguna deficiencia y que a la larga, ralentizará el sistema que estás desarrollando.

¿Quieres ver la cantidad de code smells que existen? Los puedes encontrar en este enlace.

Si te pones a solucionar todos estos code smells, no solo estás “solucionando”, si no que estarás “refactorizando“, y te sentirás como el Refactor Man:

Refactor Man

El término “refactorización” no significa agregar código nuevo, se refiere a mejorar tu código, convertir ese código revuelto a código simple.

Tras ver todo esto, ¿estás decidido a programar código de calidad?

Referencias


Comments

3 respuestas a “Reduce los parámetros de tus funciones”

  1. gracias me ayudo mucho

    1. Me da felicidad que te haya servido. Muchas gracias Tomy.

  2. Avatar de Cristal Germain
    Cristal Germain

    Me sirvió mucho.
    Gracias por la información, muy bien explicada. También agradezco que muestres las referencias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *