♪♪♪ Hola a todos. Bienvenidos a esta charla relámpago. Primero que nada, gracias a JS Nation por este espacio. Es realmente genial estar aquí. Mi nombre es Natalia Rocha. Soy de Ecuador, un pequeño y hermoso país donde la política tiene más errores que el código heredado. Trabajo en Stack Builders como desarrolladora de software, y también toco la guitarra.
Pero entremos en el tema, micro-frontends. Así que tengo la sensación de que este tema, cuando se menciona, crea mucho revuelo y discusión. Así que hablemos un poco sobre ello y qué papel juega la federación de módulos en su implementación.
En pocas palabras, un micro-frontend es una arquitectura que descompone un gran frontend como este en piezas más pequeñas que son independientemente desplegables. Aquí está la clave, independientemente desplegables. Probablemente sea la idea central de los micro-frontends. Pero ¿por qué el revuelo? Porque este enfoque está ganando mucha tracción porque puede mejorar la escalabilidad, la autonomía del equipo y el mantenimiento del código. Así que en lugar de esperar a que un equipo termine la función para poder desplegar toda la aplicación, cada modelo está aislado, es flexible, y puede implementarse de manera independiente.
Así que tenemos dos formas principales de implementar micro-frontends, en tiempo de compilación y en tiempo de ejecución. En tiempo de compilación, donde los modelos se compilan juntos en tiempo de compilación, bibliotecas, por ejemplo, y en tiempo de ejecución, donde los modelos se cargan independientemente durante el tiempo de ejecución. La federación de módulos es un ejemplo de esta implementación, que es excelente para actualizaciones dinámicas en tiempo real entre equipos.
Entonces, ¿son nuevos los micro-frontends? Veamos. ¿Alguien ha usado iframes antes? ¿Sí? ¿Alguien ha usado bibliotecas antes? ¿Sí? Entonces tal vez hayas implementado una arquitectura de micro-frontend. Pero ¿cuándo llamarías a una biblioteca o un iframe un micro-frontend? Porque a diario, todos usamos bibliotecas para agregar funcionalidades, utilidades, incluso marcos completos a nuestras aplicaciones. Así que me gusta pensar que la arquitectura o el modelo mental que defines para tu proyecto y el caso de uso de cómo pretendes separar la aplicación en una biblioteca o un iframe o un modelo federado es lo que lo convierte en un micro-frontend. Por ejemplo, en una aplicación de cine, los equipos desarrollan por separado un modelo de selección de asientos y de perfil de usuario. Así que esto les da la posibilidad de trabajar de manera independiente, teniendo la oportunidad de moverse más rápido, para bien o para mal. ¿Verdad?
Ahora saltemos un poco a la implementación. La federación de módulos es una forma de implementar esta arquitectura. Así que te permite exponer módulos como funciones, componentes, hooks, y usarlos como remotos que se cargarán en tiempo de ejecución. Fue introducido en Webpack 5. Zach Jackson, el creador, debería estar por aquí. Y la versión 2.0 fue lanzada este año.
Comments