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.
Taller del API Performance Timeline
En este taller práctico descubriremos cómo utilizar el paquete perf_hooks en Node, se explican las principales características del API Performance Timeline y se repasan algunos de los criterios y principios fundamentales que hay que tener en cuenta a la hora de optimizar el rendimiento de nuestros programas.
Explorando el API Performance Timeline
Medir el tiempo de ejecución de nuestro código no es tarea sencilla. El API Performance Timeline nos ofrece muy interesantes posibilidades. En Node está implementado en la librería estándar perf_hook. Os invitamos a dar un repaso a algunas de sus interesantes capacidades.
Otras extensiones de Map y Set
Vamos a revisar algunas extensiones de los objetos Map y Set que se han propuesto para ser parte del estándar JS y algunas librerías que realizan extensiones interesantes de estos objetos. Son muestra de las capacidades de adaptación que podemos abordar en estas estructuras de datos.
Limitar el tamaño de un Map
Limitar el tamaño de un objeto Map no parece una idea muy razonable, pero cuando tu programa se ejecuta sin interrupción durante días, semanas, meses e inclusos años, es muy importante controlar el tamaño de la memoria utilizada para evitar problemas inesperados. Una simple función memoize puede llegar a almacenar mucha más información de la que puedes pensar. Aquí te contamos como limitar el tamaño de un objeto Map para estas situaciones.
Cómo conseguir un objeto Map ordenado
Mantener un objeto Map con su contenido ordenado no es algo tan sencillo como parece. Por defecto, Map guarda los datos en el mismo orden en el que han sido creados en el objeto. Para conseguir que el contenido se muestre ordenado tendremos que explorar varias interesantes alternativas que nos descubrirán algunas de características interesantes de estas estructuras de datos.
¿Es una función nativa de Javascript?
Comprobar si una determinada función es una función nativa de Javascript o es una función escrita en código es algo más complicado de lo que pueda parecer a primera vista. No hay grandes diferencias entre una función nativa y una escrita por nosotros, por lo que tenemos que buscar mecanismos algo indirectos para poder diferenciarlas.
Este código se ha dejado intencionadamente en blanco y otros usos de void
void es una expresión de Javascript bastante olvidada. Su función es evaluar una expresión evitando que se devuelva el valor que la expresión retorna. Esto, que puede parecer poca cosa, es bastante útil en algunos casos.
Corregir la complejidad lineal en nuestra propuesta de superación de la comprobación estricta en Set y Map
En el último post, la forma en la proponíamos superar la limitación de la comparación estricta en Map y Set hace que se pase de una complejidad constante O(1) a una complejidad lineal O(n). Vamos a profundizar en este aspecto y reformular nuestro algoritmo para resolver esta limitación.
Superando la comprobación estricta en Set y Map
Set y Map son unas de los mejores y más útiles manejadores de estructuras de datos que nos ofrece Javascript. No obstante tienen una limitación, la unicidad de sus claves se establece por medio de una comparación estricta y con los objetos esto no puede ser lo que necesitamos. Te proponemos una forma de superar esta limitación.
Retrospectiva de la función equal() tras varios años de uso
Vamos a repasar las lecciones aprendidas después de un par de años utilizando una función de comparación universal que comprueba si dos elementos de Javascript son equivalentes entre sí. Muchas de las conclusiones de esta restrospectiva pueden ser de utilidad a la hora de plantearte el diseño de una función con vocación de reutilización generalista.
Tiempo de alta precisión en Javascript
Muchos siguen utilizando Date.now() cuando se puede utilizar performance.now() para obtener datos de mayor precisión para la medición del tiempo dentro de nuestra aplicación. Veamos cómo funciona, cuales son diferencias y cómo podemos aprovecharnos de su precisión.
Clases: new.target
Aunque pueda parecer que target.new
tiene una utilidad limitada, lo cierto es que es un recurso sencillo para controlar a que se está instanciando en cada momento y poder definir clases abstractas, crear clases no heredables, etc.
Clases: super
El uso de super nos ofrece una gran flexibilidad a la hora de acceder e invocar a miembros de las clases de las que heredamos, sobre todo cuando se ha producido la sobrescritura de propiedades y métodos. Veamos cómo.
Vue.js community leaders Q&A with Core Team
Gusto y Chris Fritz, miembros del Core Team de Vue, nos cuentan qué novedades esperar en Vue v3 y del ecosistema que lo rodea, además de responder a una extensa ronda de preguntas por parte de los asistentes a este encuentro en Madrid.
Introducción a Verdaccio: gestión de paquetes privados
Juan PIcado nos hace una introducción a Verdaccio, un impresionante projecto de código abierto para hostear un registro privado de paquetes de Node.js. Es muy ligero y actua como proxy de NPM, por lo que ofrece la máxima flexibilidad. Además, Pablo Almunia, nos cuenta su experiencia utilizando Verdaccio en un entorno de real.
Clases: herencia
La herencia es una de las características más interesantes y menos explotada de los objetos en Javascript. Su implementación por medio de la cadena de prototipos es bastante compleja, pero la sintaxis de clases nos facilita mucho la escritura de un código que aproveche las características que la herencia nos ofrece.