Args.js librería Javascript para tratamientos con parámetros

| 2014-04-17 | No hay comentarios »

Args-js1Es una librería para Javascript que permite establecer funciones con parámetros opcionales, valores por defecto, parámetros requeridos y una serie de tipos forzados en los parámetros, entre otras.

Lo interesante, aparte de proveer de una sintaxis para poder declarar todas estas utilidades con relación a los argumentos de las funciones, es que la propia librería hace un tratamiento de los parámetros, para saber si están los que deben estar y si tienen los tipos que tú esperas recibir. Si algo no es como tú lo esperabas, la propia librería lanza excepciones que puedes tratar para implementar comportamientos determinados.

Para los impacientes, visitar http://autographer.github.io/args.js/.

Esta librería es útil tanto si la vas a usar con Javascript en el lado del cliente, como en el entorno de servidor o propósito general, con NodeJS.

Entre otras, las funcionalidades que nos aporta son:

Declarar parámetros opcionales y parámetros requeridos: Si un parámetro requerido no se encuentra en la llamada a una función, se lanza una excepción.

Parámetros por defecto: Son parámetros que tienen valores predeterminados, si es que no se pasa ningún valor en la invocación.

Tipos obligados: Puedes decir qué tipos deben tener tus parámetros de manera obligatoria.

Grupos de argumentos: puedes recibir uno u otro tipo de parámetros, de modo que si no los recibes de un tipo, puedan concordar con otras posibilidades de otros tipos.

Argumentos con nombres: Lo que te permite invocar la función con objetos JSON en los cuales los parámetros pueden aparecer en otros órdenes. Para acarlarse simplemente usa los nombres de las llaves del objeto JSON.

Parámetros opcionales en el orden que desees: útil si por ejemplo el primero y cuarto parámetro es opcional, pero no lo son el segundo y el tercero. La librería es capaz de gestionarlo sin dolores de cabeza.

Discusión sobre la necesidad de una librería semejante

Esta librería tiene sus pros y sus contras. Son 4 Kb si está minificado y te permite controlar varias cosas clave en tu código. De alguna manera sirve para extender el lenguaje con utilidades para las funciones que, más pronto que tarde, nos resultarán atractivas. Si entras en la home del proyecto encontrarás un código de muestra, parecido al que muchos de nosotros hemos realizado alguna vez, en el que tienes que encadenar una serie de estructuras IF … ELSE para poder comprobar todos los parámetros que estás recibiendo. Es ahí donde se encuentra la potencia, ya que nos permite ahorrarnos todas esas estructuras para comprobar cosas.

Con todo lo que nos ofrece, considero que puede ser una gran ventaja para proyectos que tengan mucho código y donde hayamos llegado a una complejidad importante en las llamadas a las funciones. Sin embargo, el código que propone Args.js es un poquito feo y se hace a veces un poco farragoso. Tampoco tiene mucha pinta de código Javascript, por lo que no todos los componentes del equipo de desarrollo se sentirán a gusto al usar la librería o leer código de otros compañeros que la estén implementando.

En cuanto a la funcionalidad de asegurar que las funciones tengan parámetros determinados, de tipos fijos, considero que es un concepto interesante, no cabe duda, a la vez que útil. Si yo tengo seguridad dentro de una función que los parámetros que recibo son los que son, puedo realizar el código sin estar pendiente de un montón de comprobaciones. Pero ¿de verdad necesito esto en Javascript?.

Quizás los creadores de Args.js vienen de trabajar con lenguajes fuertemente tipados, donde estas cosas (comprobación de parámetros y sus tipos) ya te las da el propio lenguaje. Al verse sin ellas trata de crear sistemas que emulen las características de aquellos otros lenguajes con los que se siente cómodo.

Pero la realidad es otra, Javascript tiene funciones que reciben un tipo variable de parámetros. Nada impide a una función dejar de enviarle algunos o todos los parámetros al invocarla. También nada impide que los parámetros sean de un tipo distinto, ¿es necesario encorsetar a Javascript? qué es más caro después de todo, ¿el peso de cargar y educar a los desarrolladores para usar esta librería, o las ventajas que nos ofrece?

La verdad que esa respuesta solo nos la dará la práctica. Investigar, usar, probar otras posibilidades y vosotros nos diréis si os parece útil.

Sin embargo, pienso que debemos de intentar solucionar las cosas por nosotros mismos, antes de usar una librería como ésta. Luego, cuando ya te has cansado de escribir 300 veces un código similar, para comprobar cosas sobre tus parámetros, es cuando debes revisar Args.js y entender por qué los desarrolladores que la crearon la consideran útil para sus proyectos.

Fuente: DesarrolloWeb

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Pruebas unitarias en Next.js (con TypeScript)
  • Introducción a Express.js (Framework Node.js)
  • Node.js – Instalación y primeros pasos



SEGUÍNOS EN FACEBOOK


GITHUB