En esta segunda edición presentamos las principales novedades que vienen para Javascript, Vitest como herramienta a considerar en los test, nuevas características y guía para migrar React, estrategias a considerar con micro-frontends y monorepos, además de Motion One para animaciones efectivas y algunas herramientas recomendadas.
Novedades para ECMAScript
ECMAScript, como el estándar de Javascript que es, cada año presenta nuevas características que pronto serán parte oficial del lenguaje, por lo que damos un repaso a algunas de las novedades que están por venir:
Obteniendo elementos de un array
Obtener un elemento en base a su índice, ya sea desde el inicio o desde el fin del array:
Se añaden nuevas estructuras al lenguaje, las cuales tienen ventajas importantes. Se trata de los récords, similares a objetos, y las tuplas, similares a los array, con la diferencia de ser inmutables. Su sintaxis es la siguiente:
De los creadores de Vue, llega esta herramienta especial para tests unitarios que, de inicio, está hecha para adaptarse perfectamente con Vite.
En proyectos hechos con dicho web tooling o que incluso ya usaban Jest, la primera opción será adoptar y migrar a Vitest, pues ya incluye características equivalentes, pero una configuración más sencilla y tests aún más rápidos.
Si bien es un tema en boga, sigue sin ser del todo claro qué tan micro involucra la expresión. En qué casos es buena idea y cómo prevenir caer en el clásico monolito distribuido, es decir, cómo lograr esa separación que haga sentido para el negocio, trayendo las ventajas de equipos que pueden avanzar sin depender unos de los otros y sin acople de funcionalidades.
El siguiente artículo expone detalladamente algunas claves, como por ejemplo:
Conocer la estructura de la organización.
Al mismo tiempo, comprender que es algo en constante cambio.
Entender la relación de dicha estructura con la arquitectura del proyecto.
Comunicar las partes con un patrón (publish-subscribe por ejemplo) que límite el posible acople.
Este concepto, sin ser nuevo, está tomando fuerza recientemente.
Podemos decir que un monorepo es un repositorio que contiene varios proyectos relacionados de forma ordenada, lo opuesto al polyrepo, donde más bien son muchos repositorios aun si se relacionan de alguna forma.
Esto no es sólo que compartan un mismo lugar únicamente separados por carpetas. Debe existir una relación bien definida y clara. Además, contrario a lo que se pueda pensar, un monorepo no es un monolito.
Se insiste en eso, pues es distinto al polyrepo, donde la división está marcada físicamente con la intención de dar autonomía, pero sacrificando colaboración, pues cada proyecto tiene versiones de librerías distintas, así como sus propios mecanismos para compilar o publicar. En contraste, en un monorepo se busca la colaboración cercana de aquello que hace sentido proporcionando más ventajas como:
Menos configuraciones al añadir un nuevo proyecto.
Commits más integrales.
Facilidad de colaborar entre los proyectos.
Compartir código.
Uso de caché.
Ejecución de tareas centralizadas.
Manejo de reglas, tanto de visibilidad, como de relación entre proyectos.
Herramienta de escritorio disponible para Windows y Mac, o vía instalación npm, que permite prototipar y diagramar componentes dinámicamente, así como exportar lo generado.