Seleccionar página

En aras de la productividad el mundo del desarrollo se ha ido ampliado de forma constante con funciones, módulos, librerías, paquetes, frameworks y entornos de desarrollo cada día más completos, complejos y sofisticados: Angular, React, Vue, Express, Socket.io, Meteor, etc. Esta pléyade de código desarrollado por personas muy inteligentes, juiciosas y experimentadas nos hacen cada día la vida más fácil. De esta forma podemos centrarnos en los requisitos de nuestros clientes, usuarios o product owners y olvidarnos de los procesos internos que realizan estos códigos. Es sin duda algo muy positivo.

El problema es que el uso continuado de este código nos aísla de la base, de lo básico y, con el tiempo, llegamos a olvidarlo. Ya casi nadie sabría programar en un navegador sin en omnipresente JQuery o se plantearía desarrollar un servidor HTTP en NodeJS sólo con la librería nativa. No es algo necesariamente malo, pero debemos ser conscientes de que cada día estamos un poco más alejados del desarrollo base, aquel que se hace sin complementos, sólo con lo que nos ofrece un editor de texto y las funciones y funcionalidades que dispone nuestro navegador o en NodeJS sin incluir otras dependencias.

Es recomendable desarrollar de vez en cuando -por ejemplo, una vez al año- un pequeño proyecto con cero dependencias, programando por nosotros mismos todo lo que necesitamos. Es seguro que deberemos sacrificar la productividad, pero volveremos a recordar lo básico de la programación, volveremos a comprender las bases de nuestro entorno y, seguramente, seremos más conscientes de la gran cantidad de cosas que están en el fondo de nuestra caja de herramienta y, por falta de costumbre, hemos olvidado.

Por ejemplo, el recordaremos el uso de document.querySelector() en vez del casi universal $(), descubriremos que los módulos incluidos en NodeJS tienen una gran cantidad de funcionalidades y que no siempre hay que utilizar NPM. Volveremos a descubrir un mundo sin Gulp, Grunt, Webpack, Babel, etc. Veremos que, por ejemplo, mientras nosotros usábamos Babel para todo, el soporte de ES6 está cada día más extendido y la necesidad de un compilador es, en ocasiones, menor de lo que pensábamos.

Seguramente también nos encontraremos con alguna funcionalidad verdaderamente difícil de abordar sin echar mano de una librería externa bien desarrollada. Por ejemplo, en el último ejercicio que estamos abordado sin dependencias nos hemos encontrado con la dificultad de desarrollar un servidor WebSocket desde cero. En estos casos es una buena idea copiar y adaptar un código de otros, siempre con el objetivo de comprender como funciona. Hay que recordar que estamos haciendo un ejercicio para aprender o recordar lo que se nos había olvidado después de trabajar todos los días con funcionalidades de mayor nivel.

Ahora que empieza la parte más calurosa del verano en el hemisferio norte, y entramos en la parte más fría del invierno en las tierras australes, es un buen momento para darnos este pequeño respiro y trabajar por unos días sin dependencias externas, o casi -que tampoco hay que ser extremista. Estamos seguros de que disfrutareis y aprenderéis al desarrollar un proyecto con cero dependencias.

Novedades

customElements a fondo

Vamos a dar repaso general a customElements y todos sus métodos. Esta es una pieza clave para la creación de Custom Tag, uno de los pilares de los Web Components. Hemos intentado empezar por lo más básico e ir avanzando hasta describir algunos de sus comportamientos más complejos, además de describir algunas de las características más importantes de los Web Components.

Uso de jsRPC en una aplicación de ejemplo

Para poder comprender mejor cómo podemos utilizar la librería jsRPC hemos creado una aplicación de ejemplo en la que hemos utilizado el modelo RPC para que el front invoque funciones del servidor y para que los diferentes microservicios invoquen de forma remota funciones entre ellos.

Un completo sistema RPC en Javascript con sólo 100 líneas

La aparición de gRPC de Google ha hecho que vuelva a ponerse de moda los sistemas de Remote Procedure Calls. La mayoría de las implementaciones de RPC se han ajustado muy poco a las características idiomáticas de Javascript. Con jsRPC mostramos cómo desarrollar un completo sistema RPC utilizando las características de Javascript.

Usar correctamente el método sort()

En general no se hace un uso habitual del método .sort() de los Array y muchas ocasiones se desconoce cómo hacer funcionar este método de forma correcta. En este artículo os contaremos cómo funciona y cómo sacar partido a sus características.