This graph shows how many times the word ______ has been mentioned throughout the history of the program.
¿Quieres mejorar la legibilidad y la extensibilidad de tus funciones en JavaScript?
Te voy a mostrar una buena práctica que debes considerar si quieres que tu código aguante el paso del tiempo.
Y es que, en las funciones, está bien cuando en las funciones tenemos dos parámetros.
Por ejemplo, la función CreateGodzilla, y tenemos el color y tenemos el peso.
Hasta aquí funciona bastante bien, ¿no?
Tenemos dos parámetros y podríamos utilizar el CreateGodzilla,
le pasamos el color, que sería blue, y luego le decimos el peso, que sería 200 toneladas, por ejemplo.
Ahora, ¿qué pasa? Que la función normalmente va evolucionando y vamos a querer añadir más parámetros.
Por ejemplo, los poderes, ¿vale? Está bien, los poderes los podemos poner aquí sin ningún problema.
Ya tenemos tres parámetros y aquí le estamos pasando tres argumentos.
Perfecto. ¿Qué pasa si hacemos que, por ejemplo, el peso sea opcional?
¿Esto qué quiere decir? Que tengamos un valor por defecto aquí, que sea 200 toneladas.
Entonces, ya no queremos pasárselo aquí.
Una cosa que tenemos que hacer es añadir aquí el Undefined,
porque tenemos que asegurarnos que le pasamos un valor vacío para que utilice el valor por defecto.
Imagina que solo quieres que tenga el color azul y el Lighting,
pero no sabes el peso y ya debe utilizar el que sea por defecto.
Otro problema que te puedes encontrar es que añadamos aquí otro parámetro más,
que sea Sound, y resulta entonces que este método que teníamos aquí
ya no funciona correctamente como esperábamos.
Estamos rompiendo el contrato de la función, o sea, que no es muy extensible esta función.
Una liada. Así que vamos a solucionarlo.
¿Cómo podemos solucionarlo? Pues utilizando los parámetros nombrados.
¿Cómo se hace un parámetro nombrado?
Básicamente, lo que hacemos es pasarle a CreateGodzilla un Godzilla params, un objeto.
Y este objeto, lo que vamos a tener es el color, el peso, el sonido y los poderes.
Como podemos utilizar la sintaxis de la destructuración en los propios parámetros de la función,
lo que podemos hacer aquí es destructurar y recuperamos el color, el peso, el sonido y los poderes.
¿Qué estamos haciendo aquí? En realidad lo que estamos haciendo ya es que tenga un contrato a través del nombre.
Así que esto, que es lo que estábamos haciendo anteriormente, ahora deberíamos hacerlo de esta forma.
Godzilla, y tendríamos que pasarle.
El color es Blue.
El peso es 200.
El sonido, por ejemplo, es War.
Y los poderes, pues vamos a poner Lighting y Nuclear Bomb.
Ahora ya tenemos como un contrato donde los nombres del objeto, las propiedades, las keys,
son las que le van a llegar justamente como parámetro a nuestra función.
Ahora no podemos poner aquí lo que queramos, como color y...
No, tiene que ser el color exactamente.
Y fíjate lo fácil que es, que si el peso es opcional, podemos eliminarlo de aquí.
Para que lo veas más claro, voy a formatear un poco esto, para que lo veas en una sola línea.
Y mira, este peso, que ahora es opcional porque tenemos aquí un valor por defecto,
lo puedo eliminar de aquí y ya funcionaría correctamente.
Ya deberíamos ser capaces de tener este valor por defecto aquí funcionando.
O sea que, genial.
Además es súper fácil de extender.
¿Qué quieres?
¿Quieres poner alguna cosa más?
Por ejemplo, el material.
Pues lo ponemos aquí.
Ponemos el material.
Esto hace que siga funcionando la función allí donde la estés utilizando.
Porque hasta que no hagas que este nuevo parámetro sea obligatorio por lo que sea dentro,
no debería haber ningún problema.
De hecho, podrías poner que tenga un valor por defecto.
Esto seguiría funcionando sin ningún cambio.
Pero además, si quisieras, podrías pasarle el material que quieras.
Por ejemplo, natural.
O plastic.
Vamos a ponerle plastic.
Así, de esta forma, lo que estamos haciendo es que nuestra función sea extensible,
que sea mejor a la hora de soportar los cambios.
Y además queda mucho más claro a la hora de utilizarla.
Porque estás viendo el contrato que necesitas para crear un Godzilla.
Esto, obviamente, que es un objeto, puedes crear aquí un Godzilla params.
Tenerlo aquí.
Y finalmente, como parámetro, como argumento, le pasaríamos el Godzilla params.
Y ya lo tendríamos aquí funcionando también perfectamente.
Así que esta sería una buena práctica para JavaScript.
Cuando tienes una función que ya tiene más de dos parámetros,
ya empieza a hacerse más complicado.
O si es una función que va a evolucionar con el tiempo,
pues ya sabes, utiliza los parámetros nombrados
que te van a hacer la vida a ti y a tu equipo
y a la gente que tenga que ver tu código mucho más fácil.
¡Suscríbete al canal!