Rendimiento de Micro-Frontends y Caché de Datos Centralizada

Rate this content
Bookmark

Los mitos comunes sobre los Micro-Frontends sostienen que son malos para el rendimiento o que los desarrolladores que implementan este estilo arquitectónico no se preocupan por las implicaciones de rendimiento porque se centran en solucionar los problemas de experiencia del desarrollador y organizacionales en lugar de centrarse en la experiencia del usuario, sin embargo, la realidad es completamente diferente. Los Micro-Frontends no son inherentemente malos para el rendimiento y, como suele ser el caso en el desarrollo de software, aprovechar al máximo la tecnología depende de una implementación correcta. Esta charla demostrará cómo los Micro-Frontends pueden hacer que tus aplicaciones sean más rápidas y resistentes mientras se mantienen los beneficios de las implementaciones independientes.

FAQ

OneApp es un marco de micro front-end de código abierto utilizado por aproximadamente 2,000 desarrolladores en American Express. Sirve como un meta marco para mantener y mejorar la eficiencia y el rendimiento de las aplicaciones utilizadas por múltiples clientes a nivel mundial.

Los micro front-ends permiten implementaciones independientes, donde los equipos pueden trabajar en partes distintas del sitio web de manera autónoma, sin necesidad de reiniciar el servidor para cambios, y proporcionan una modularidad que facilita la gestión del desarrollo en grandes equipos.

El patrón Strangler es una estrategia utilizada para actualizar y mejorar gradualmente aplicaciones heredadas. Permite integrar nuevos marcos o tecnologías de manera incremental sin necesidad de reescribir completamente la aplicación existente.

Uno de los mayores mitos es que los micro front-ends son malos para el rendimiento debido a la mezcla de diferentes bibliotecas y frameworks en una misma página, como React, Angular, entre otros. Sin embargo, esto es un malentendido y no refleja las capacidades reales de los micro front-ends.

Se evitan las dependencias duplicadas utilizando técnicas como la federación de módulos, que permite compartir y reutilizar código eficientemente entre los diferentes micro front-ends, reduciendo así el tamaño total de los paquetes y mejorando la carga de las aplicaciones.

Cada micro front-end gestiona su propia carga de datos para mantener su independencia y evitar acoplamientos no deseados. Esto se complementa con técnicas como cachés compartidas para reducir llamadas redundantes a la API y optimizar el rendimiento.

Los micro front-ends mejoran la experiencia del desarrollador al permitir que diferentes equipos trabajen de forma independiente y específica en componentes de la aplicación, lo que lleva a una mayor eficiencia y menor riesgo de errores en un entorno de desarrollo organizado y modular.

Ruben Casas
Ruben Casas
27 min
22 Oct, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La arquitectura de micro front-end, como las tiendas de micrófonos, puede ayudar a escalar aplicaciones aplicando los principios de microservicios al front-end. Las tiendas de micrófonos pueden ser beneficiosas para el rendimiento, dependiendo de la implementación. Pueden reducir el tamaño de los paquetes, evitar dependencias duplicadas y garantizar implementaciones independientes. La API compartida y la federación de módulos son características poderosas que permiten la gestión de dependencias. Los micro front-ends pueden mejorar la experiencia del desarrollador y la experiencia del usuario al abordar problemas organizativos y de escalabilidad.

1. Introducción al rendimiento y a las carpas de micrófono

Short description:

¡Hola a todos! El tema de hoy es el rendimiento. Soy un ingeniero senior en American Express y trabajo en el marco de micro front-end llamado OneApp. Es de código abierto y es utilizado por 2,000 desarrolladores. Con millones de usuarios, el rendimiento es crucial. La arquitectura de micro front-end, como las carpas de micrófono, puede ayudar a escalar las aplicaciones aplicando los principios de microservicios al front-end. Las implementaciones independientes son un beneficio clave. Sin embargo, existen muchos conceptos erróneos y mitos alrededor de las carpas de micrófono.

¡Hola a todos y bienvenidos a mi presentación! Hoy tenemos un tema muy interesante, y se trata del rendimiento. Mi nombre es Rubén. Soy un ingeniero senior en American Express, y ese es mi nombre de usuario en Twitter si quieren seguirme.

¿Qué hago en American Express? Bueno, formo parte de un equipo que mantiene un marco de micro front-end llamado OneApp. Es como un meta marco que utilizamos en American Express. Y este marco es de código abierto, y es utilizado por aproximadamente 2,000 desarrolladores, por lo que hay un equipo de 2,000 desarrolladores en Amex que utilizan este marco, y también nuestras aplicaciones son utilizadas por múltiples clientes en todo el mundo.

Ahora la pregunta es, cuando tienes tantos usuarios, ¿qué es lo primero que se te viene a la mente? Bueno, el rendimiento. Necesitamos asegurarnos de que todos esos millones de usuarios tengan un buen rendimiento. Ahora, antes de comenzar con la sección de rendimiento, voy a sacar esto de en medio porque nos preguntan esto bastante. He visto este tweet muchas veces. ¿Las carpas de micrófono ya son una cosa? O la otra pregunta es, ¿por qué no podemos simplemente usar componentes? Permítanme responder esa pregunta brevemente antes de entrar en la sección de rendimiento. Bueno, las carpas de micrófono, sí, son una cosa. Y, además, han estado presentes desde hace un tiempo. No es como si fueran algo nuevo o una tecnología completamente nueva. Han estado presentes durante un tiempo. Básicamente, lo que pueden hacer es ayudarte a escalar tus aplicaciones aplicando los mismos principios que tienes para los microservicios al front-end.

Ahora, un pequeño aviso aquí. No voy a tratar de convencerte de que las carpas de micrófono son geniales y que deberías empezar a usarlas mañana. Ese no es el motivo por el que estoy aquí hoy. Pero si usas carpas de micrófono, obtendrás beneficios realmente buenos. Como el principal, en mi opinión, que son las implementaciones independientes. Entonces, si tienes un equipo grande o varios equipos, pueden implementar de forma independiente. Pueden tener sus propios repositorios y simplemente hacer su propia cosa, todo se configura y pueden implementar de forma independiente. Diferentes partes del sitio web, de la aplicación web. Lo bueno de OneApp es que no tenemos que reiniciar el servidor. Puedes implementar una nueva versión y se carga automáticamente sin reiniciar el servidor. Si no te he convencido con esto, traje algo de pizza, si alguien quiere pizza. ¡No estoy tratando de convencerte aquí! Ahora, hay un problema con las carpas de micrófono, un gran, gran problema. Este problema es que existen muchos conceptos erróneos y mitos alrededor de las carpas de micrófono.

2. Carpas de Micrófono y Rendimiento

Short description:

El mayor mito sobre las carpas de micrófono es que son malas para el rendimiento. Esta idea errónea se basa en la creencia de que las carpas de micrófono implican mezclar múltiples frameworks en la misma página. Sin embargo, esto es un mito falso. Si bien es posible utilizar múltiples frameworks en la misma página, no siempre es una buena idea. El patrón Strangler es un enfoque recomendado para migrar de una aplicación antigua a una nueva, permitiendo una transformación incremental de la interfaz de usuario. Las carpas de micrófono pueden ser beneficiosas para el rendimiento, dependiendo de la implementación.

El mayor mito, con diferencia, es que son malas para el rendimiento. Sí, ese es el mayor mito sobre las carpas de micrófono, y permítanme decirles... hay una razón para esto, y he descubierto por qué la gente piensa que las carpas de micrófono son malas para el rendimiento. Y la razón es que la gente piensa que las carpas de micrófono consisten en mezclar bibliotecas en la misma página, por lo que tenemos React, Angular, Vue, Svelte e Infinity Dash en la misma página. ¿Es eso de lo que se tratan las carpas de micrófono? Bueno, permítanme decirles que este es un mito falso, y por eso la gente piensa que las carpas de micrófono son malas para el rendimiento.

Lo primero que encuentran sobre las carpas de micrófono es que se trata de React, Angular y todo en la página. Permítanme preguntarles, ¿es eso una buena idea? ¿Es eso una buena idea? Mi amigo Ken cree que sí es una buena idea. No es una buena idea. Sí, pueden usar React, Angular y todos estos frameworks en la misma página, pero solo porque pueden, no significa que deban hacerlo. Aunque hay un caso, un caso de uso específico donde podría ser una buena idea. No es genial, pero es un caso válido de tener múltiples frameworks en la misma página. Y este es el patrón Strangler.

El patrón Strangler es lo mejor que puedes hacer si estás migrando de una aplicación antigua, como una aplicación heredada, a una nueva. ¿Cuántos de ustedes han tenido que reescribir su antigua aplicación AngularJS en React? ¡Yo! Es muy común. Estos son casos de uso muy comunes. Durante los últimos cinco, seis, siete años, AngularJS no es bueno, así que lo reemplazamos con React. ¿Qué hacemos? Simplemente detenemos por completo el desarrollo, decimos a los gerentes de producto: lo siento, no podemos agregar más funciones porque AngularJS es malo y no podemos mantenerlo. Necesitamos reemplazarlo con React. Lo primero que te dirán es, ¿qué? ¡No! ¡No puedes hacer eso! Quiero decir, probablemente algunas personas lo hacen. Lo que el patrón Strangler te ayudará a hacer es transformar tu aplicación de forma incremental. No tienes que hacer una transformación completa de golpe, reescribir toda la aplicación. Lo que puedes hacer es comenzar a aplicar el patrón de micro front-end y el patrón Strangler para mejorar diferentes partes de la interfaz de usuario.

Lo mejor es, ¿podemos comenzar ruta por ruta? Sí, puedes hacerlo, pero cuando tienes múltiples partes en la misma página que necesitas cambiar, y a veces una página es mucho trabajo, es como si toda la aplicación fuera una página. Con las carpas de micrófono, lo que puedes hacer es comenzar desde una parte muy pequeña en esa página que va a utilizar React, el resto va a utilizar Angular, y luego en algún momento, esto es clave, eliminas Angular. No mantienes ambos en la misma página ¡por el rendimiento! Sí, no deberíamos hacer eso. Este es el único caso donde podría ser útil tener múltiples frameworks en la misma página. Así que las carpas de micrófono pueden ser buenas para el rendimiento. Descargo de responsabilidad, como una estrella, letra pequeña. Depende de tu implementación. Todo en la arquitectura depende de cómo lo implementes.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Una Guía del Comportamiento de Renderizado de React
React Advanced Conference 2022React Advanced Conference 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
React es una biblioteca para "renderizar" UI a partir de componentes, pero muchos usuarios se encuentran confundidos acerca de cómo funciona realmente el renderizado de React. ¿Qué significan términos como "renderizado", "reconciliación", "Fibers", y "committing"? ¿Cuándo ocurren los renderizados? ¿Cómo afecta el Contexto al renderizado, y cómo las bibliotecas como Redux causan actualizaciones? En esta charla, aclararemos la confusión y proporcionaremos una base sólida para entender cuándo, por qué, y cómo React renderiza. Veremos: - Qué es realmente el "renderizado" - Cómo React encola los renderizados y el comportamiento de renderizado estándar - Cómo se utilizan las claves y los tipos de componentes en el renderizado - Técnicas para optimizar el rendimiento del renderizado - Cómo el uso del contexto afecta al comportamiento del renderizado - Cómo las bibliotecas externas se integran en el renderizado de React
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
¿Demasiado JavaScript te está agobiando? Los nuevos marcos que prometen no usar JavaScript parecen interesantes, pero tienes una aplicación React existente que mantener. ¿Qué tal si Qwik React es tu respuesta para un inicio de aplicaciones más rápido y una mejor experiencia de usuario? Qwik React te permite convertir fácilmente tu aplicación React en una colección de islas, que pueden ser renderizadas en el servidor y rehidratadas con retraso, e incluso en algunos casos, se puede omitir la rehidratación por completo. Y todo esto de manera incremental sin una reescritura.
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
¡React 18! ¡Funciones concurrentes! Tal vez ya hayas probado las nuevas APIs como useTransition, o tal vez solo hayas oído hablar de ellas. Pero, ¿sabes cómo React 18 logra las mejoras de rendimiento que trae consigo? En esta charla, echemos un vistazo bajo el capó de las características de rendimiento de React 18: - Cómo React 18 reduce el tiempo que tu página permanece congelada (también conocido como TBT) - Qué sucede exactamente en el hilo principal cuando ejecutas useTransition() - Cuál es la trampa con las mejoras (¡no hay torta gratis!), y por qué Vue.js y Preact se negaron rotundamente a lanzar algo similar
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Nuestra comprensión del rendimiento y la experiencia del usuario ha evolucionado mucho a lo largo de los años. Las herramientas de desarrollo web necesitan evolucionar de manera similar para asegurarse de que sean centradas en el usuario, accionables y contextuales donde se refiere a las experiencias modernas. En esta charla, Addy te guiará a través de cómo Chrome y otros han estado pensando en este problema y qué actualizaciones han estado haciendo a las herramientas de rendimiento para reducir la fricción para construir grandes experiencias en la web.
Optimización de juegos HTML5: 10 años de aprendizaje
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Optimización de juegos HTML5: 10 años de aprendizaje
Top Content
El motor de juegos de código abierto PlayCanvas está construido específicamente para el navegador, incorporando 10 años de aprendizaje sobre optimización. En esta charla, descubrirás la salsa secreta que permite a PlayCanvas generar juegos con tiempos de carga increíblemente rápidos y tasas de fotogramas sólidas como una roca.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
Featured WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
Micro Frontends con Module Federation y React
JSNation Live 2021JSNation Live 2021
113 min
Micro Frontends con Module Federation y React
Workshop
Alex Lobera
Alex Lobera
¿Alguna vez has trabajado en una aplicación monolítica de Next.js? Yo sí, y escalar una gran aplicación de React para que muchos equipos puedan trabajar simultáneamente no es fácil. Con micro frontends, puedes dividir un monolito frontend en piezas más pequeñas para que cada equipo pueda construir e implementar de forma independiente. En este masterclass aprenderás cómo construir aplicaciones de React grandes que escalen utilizando micro frontends.
Depuración del Rendimiento de React
React Advanced Conference 2023React Advanced Conference 2023
148 min
Depuración del Rendimiento de React
Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Veía una interacción lenta, probaba una optimización aleatoria, veía que no ayudaba, y seguía probando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Hacía una grabación en Chrome DevTools o React Profiler, la examinaba, intentaba hacer clic en cosas al azar, y luego la cerraba frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos cómo analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, cubriremos el rendimiento de interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Master Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Master Patrones de JavaScript
Workshop
Adrian Hajdin
Adrian Hajdin
Durante este masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debe conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final del masterclass, los participantes ganarán confianza en su capacidad para escribir código JavaScript de alta calidad que perdure en el tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento profesional y las oportunidades de avance en la industria del software