A group of friends looking at a sunset
A group of friends looking at a sunset
Photo by Min An from Pexels

No sé si a ti te habrá pasado, pero para mí Webpack siempre ha sido todo un misterio. Sé que hay un fichero ahí de configuración, que hace cosas, pero no he logrado entender bien para qué es cada cosa…. Hasta ahora…

Aquí voy a hacer mención especial a Víctor Borrego, formador en el máster de LemonCode, que nos ha conseguido explicar con pocas palabras qué es Webpack y que yo lo entienda.

¿Qué es Webpack entonces?

Es una librería que nos ayuda a convertir nuestro código en algo que el navegador pueda entender y que además sea lo más óptimo posible. …


Las funciones tipo query, es decir, que tienen un return, por lo general son muy fáciles de testear, porque siempre devuelven un resultado.

Pero ¿qué ocurre cuando queremos testear una función tipo action?

Vamos a poner un ejemplo:

Imaginemos que estamos testeando esta función. Esta función es un constructor que nos devuelve un método que calcula la operación que le indiquemos. En este caso, sólo ejecuta las sumas, pero nos vale para el ejemplo.

Nuestra función constructora recibe como parámetro un client, que es otra función que tiene un método que, como vemos aquí, se llama save.

Ahora no…


¿Por qué JavaScript admite con agrado la programación funcional? — Closures

Vector creado por pch.vector — www.freepik.es

Antes de nada, perdón por el chiste tan malo del título. Tengo alrededor unos compañeros de trabajo que me han pegado este terrible (y en el fondo maravilloso) humor.

Una de las razones por las que la programación funcional y JavaScript se llevan bien es la existencia en éste de las closures.

¿Por qué?

Porque permiten ir usando de forma parcial los parámetros. Me voy a explicar, porque yo antes creía entender las closures pero no es hasta ahora que he comprendido el potencial de las mismas.

¿Qué son las closures?

Lo primero es lo primero: qué es una closure.

Son funciones que manejan…


Fuente de la foto https://www.freepik.es/foto-gratis/pan-clavos-cerca-cuencos-especias_2975665.htm

El curry aparte de una mezcla de especias que le da a las comidas un toque delicioso, es un método de programación funcional en el que se combinan funciones.

Me hace gracia el nombre y curiosamente es en honor a Haskell Curry, matemático cuyos trabajos se basaron en esta lógica combinatoria y que sembró las bases de la programación funcional. De ahí que existan en programación tanto haskell como curry o currificación y que ambos estén basados en programación funcional.

Pero qué hace exactamente la currificación…

Una función currificada es una función que toma varios parámetros de uno en uno. Es decir, que si tenemos 3…


Hace mucho que no escribo y lo voy a hacer sobre un amigo del Javascript, algunos le odian, otros le aman… Lo cierto es que, usado con cabeza, puede hacer grandes cosas, pero siempre hay que tener claro que el mismo poder tiene para hacer de nuestro código el rey de la eficiencia como de convertirlo en un infierno. Estoy hablando, por supuesto, de this.

This resulta complejo porque puede cambiar su valor dependiendo de quién lo ejecute y, si no lo controlamos bien, puede darnos resultados inesperados.

Antes de verlo con ejemplos, vamos a partir de la idea de…


Ya hemos visto anteriormente que las peticiones de datos a través de un servidor son asíncronas. Para explicar la asincronía de estas peticiones, vamos a trabajar en este artículo con AJAX, que es la forma básica de realizar peticiones al servidor, y así entenderemos mejor lo que ocurre cada vez que lanzamos dichas peticiones.

¿Qué es AJAX?

Antes de lanzarnos de lleno en el tema, vamos a ver qué es AJAX. El acrónimo es Asynchronous JavaScript And XML, es decir, que es Javascript asíncrono y XML. En efecto, el propio concepto ya nos está hablando de asincronía. AJAX es una técnica que nos…


Imagen de natanaelginting.

O dicho de otro modo, vamos a ver las diferencias entre sincronía y asincronía en Javascript, ya que a veces puede resultar confuso.

Sincronía

Podríamos pensar que cuando hay callbacks, es que existe asincronía, porque parece que esperamos la ejecución de algo que no sabemos cuándo se va a ejecutar. Sin embargo, el hecho de que exista un callback no implica necesariamente que sea asíncrono. Vamos a ver un ejemplo en el que, a pesar de tener callbacks, todo es síncrono.


Cuando queremos implementar test en nuestras aplicaciones, a veces nos encontramos con la difícil tarea de testear funciones que tienen que ver con el DOM. Al ser funciones que dependen de la acción del usuario, tenemos que simular de alguna manera que un usuario ficticio está interactuando. Esto se puede hacer de varias maneras:

  • con un test EndToEnd, que usan frameworks capaces de simular a los navegadores reales y puedes ver, como de si de un video se tratara, cómo se va moviendo y haciendo clicks, etc., que veremos más adelante, o..
  • con test que generan un DOM “de mentira”…


Aunque pueda parecer algo muy evidente, quiero dedicar un artículo al manejo de excepciones o errores en Javascript.

En la medida de los posible si hay un error y nos podemos recuperar de él y continuar con nuestra aplicación, mejor. Por eso, hay varios métodos que nos pueden servir para este cometido:

  • Throw: Lanza un error y se para la ejecución.
  • Try: intenta ejecutar la función y, si tuviera algún error (throw)…
  • Catch: …lo captaría este catch y nos lo enseñaría.

Por ejemplo, tenemos esta función que lanza el error a través del throw:


Así es, como buena estudiante en constante absorción de conocimientos, tengo como objetivo aprender buenas prácticas a la hora de programar, por eso le quiero dedicar un artículo a los principios de diseño de Javascript.

Javascript es un lenguaje de programación funcional y como tal, los principios hablan mucho de funciones y de cómo deberían usarse.

Lo que hay que evitar

Para hablar de principios primero vamos a centrarnos en lo que NO hay que hacer. Son aquellas características que se repiten cuando programamos sin tener en cuenta que otros puedan entender nuestro código. …

Aida

If something does not work, ACT. Yes, you! ;) That is why I am now #FrontEnd developer in @kairos_ds constantly absorbing knowledge. Proud #Adalaber.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store