Manejo de datos a gran escala para desarrolladores de React

Rate this content
Bookmark

Es muy difícil escalar aplicaciones web modernas a millones de usuarios concurrentes. A menudo, tenemos que aprovisionar y considerar almacenes de clave/valor en memoria, motores de búsqueda, motores de análisis y bases de datos, todo ello manteniendo la trazabilidad a través de las capas. Esta charla amplía los detalles técnicos de las aplicaciones web a esta escala y ofrece una forma más sencilla de lograr el mismo efecto sin las complicaciones técnicas.

FAQ

La charla se centró en cómo manejar datos a gran escala en React, explorando diferentes métodos para obtener y manejar datos, y cómo implementar estas técnicas eficientemente en aplicaciones de React.

Excalidraw es una herramienta de dibujo utilizada para crear diagramas de manera fácil y rápida. Fue mencionada en la charla para ilustrar cómo se manejan los datos a gran escala en aplicaciones de React.

Las tres formas principales son: 1) Renderizar el componente y luego obtener los datos, 2) Obtener los datos y luego renderizar el componente, y 3) Renderizar mientras se obtienen los datos, utilizando las características concurrentes de React 18.

Los desafíos incluyen manejar el crecimiento de la base de datos, escalando vertical y horizontalmente, y optimizar el rendimiento al introducir bases de datos en memoria para lecturas rápidas y manejar la indexación y búsqueda en grandes volúmenes de datos.

Con React 18, puedes utilizar Suspense para manejar la carga de datos de manera que el componente pueda renderizarse parcialmente mientras espera que los datos estén disponibles, mejorando la experiencia del usuario al minimizar los tiempos de espera visibles.

Suspense es una característica de React que permite a los desarrolladores definir un componente de espera mientras se cargan los datos. Ayuda a manejar estados de carga de forma más elegante y a mejorar la interacción del usuario mientras se cargan los datos asincrónicamente.

Se recomienda confiar en bibliotecas probadas y frameworks como Next.js o Remix, que están diseñados para manejar eficientemente los casos extremos y las complejidades de las aplicaciones modernas de React, especialmente a gran escala.

Tejas Kumar
Tejas Kumar
23 min
17 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla trata sobre el manejo de datos a gran escala para desarrolladores de React, incluyendo la escalabilidad de las bases de datos y la necesidad de búsqueda. Explora diferentes formas de obtener datos en React, como el uso de useEffect, fetch y setState. La charla también presenta Suspense para la obtención de datos y cómo mejora la experiencia del usuario. Cubre el control de Suspense en React, el manejo de la búsqueda y el uso de render-as-you-fetch. La charla concluye con una discusión sobre el estado RFC y la obtención de datos en los controladores de eventos.

1. Handling Data at Scale for React Developers

Short description:

Estamos aquí para hablar sobre cómo manejar datos a gran escala para desarrolladores de React. Seamos más específicos y veamos un diagrama de lo que queremos decir con datos a gran escala. Por lo general, tienes una aplicación de React o una interfaz de usuario de React que se comunica con una API que luego se comunica con una base de datos. En algún momento, experimentarás un crecimiento y el rendimiento se vuelve importante. Por lo tanto, distribuyes tu API, tienes múltiples APIs y balanceas la carga entre ellas. Pero si tienes éxito, es posible que tu base de datos se convierta en el cuello de botella, por lo que necesitas escalarla.

¡Hola! ¿Cómo estás? ¿Lleno? ¿Lleno de almuerzo? ¿Satisfecho? Un poco más de conocimiento e información y cosas divertidas de react ¿verdad? Es como si hubiera tres de ustedes, tres de ustedes están despiertos. ¿Cuatro? De nuevo, ¿cómo te sientes? ¿Estás listo para aprender algunas cosas? Errores por uno, ¿sabes?

De todos modos, ¡hola! ¡Encantado de verte! Soy Tajus, solía decirles a las personas. Solía decirles que era como algo, pero ahora digo que es como ventajoso. De todos modos, soy el director de relaciones con desarrolladores en Zara. Mira esta cosa hermosa. Esa es mi diapositiva favorita y también una de mis cinco diapositivas. Vamos a escribir mucho código en esta charla y aprender correctamente. Por cierto, esto fue hecho por Sarah Vieira, ella está aquí, ella está haciendo la última charla hoy, así que si quieres aprender cómo hacer cosas en 3D, no te la pierdas. Pero eso no es de lo que estamos aquí para hablar hoy.

Estamos aquí para hablar sobre cómo manejar data a gran escala para desarrolladores de react. Manejo de data a gran escala para desarrolladores de react. ¿Qué significa eso? Esto suena como una charla de marketing muy abstracta y la respuesta es porque no es una charla de marketing, pero es abstracta a propósito para que pueda cambiarla en el último minuto como siempre hago, ¿de acuerdo? Pero seamos más específicos y veamos un diagrama de lo que queremos decir con data a gran escala. Para hacer eso, vamos a usar una herramienta increíble llamada Excalidraw. ¿Cuántos de ustedes han oído hablar de Excalidraw? Sí, si quieren aplaudir a Excalidraw, sí, por supuesto. Data a gran escala. Esto es lo que parece. Por lo general, tienes una aplicación de React o una interfaz de usuario de React, digamos, ¿verdad? ¿El texto está bien? ¿Todos pueden ver? Bien. Lo sabía. Acabo de preguntar y lo que vamos a hacer es que por lo general tienes una interfaz de usuario de React que se comunica con una API que, vamos a alejarnos un poco, que luego se comunica con una database y estas conexiones generalmente se ven un poco así. Así que esto puede ser demasiado simplificado, pero eso es lo que la mayoría de las aplicaciones hacen. ¿Esto es a gran escala? Probablemente no. Esta es una única database de host y así sucesivamente. En algún momento, experimentarás un crecimiento y el rendimiento se vuelve importante. Entonces, ¿qué haces? Probablemente distribuirás tu API. Tener un único punto de falla generalmente no es recomendable, así que lo que harás es eso y tendrás múltiples APIs que pueden obtener datos múltiples veces y lo que sea. Y puedes balancear la carga entre ellos. Y luego, bueno, vas a ser como, esto está genial, pero si creces, ¿qué hacen las cosas exitosas? Crecen. Entonces, si creces, vas a estar como, oh no, nuestra database ahora es el cuello de botella. Vamos a escalarlo.

2. Scaling Databases and the Need for Search

Short description:

Entonces escalarás tu base de datos vertical u horizontalmente. Escalar verticalmente significa agregar memoria y espacio en disco, mientras que escalar horizontalmente implica tener una instancia principal y réplicas. A medida que tus datos crecen, es posible que notes tiempos de lectura lentos desde la base de datos debido a limitaciones de disco. Para solucionar esto, puedes agregar una base de datos en memoria para una lectura más rápida, con la opción de recurrir al disco si hay una falta de caché. Eventualmente, a medida que aumenta el volumen de tus datos, la búsqueda se convierte en una función común necesaria para plataformas como GitHub, TikTok e Instagram.

Entonces escalarás verticalmente. Y esta escala vertical generalmente significa agregar memoria, agregar espacio en disco, agregar cosas. Y se vuelve bastante costoso. Eventualmente construyes una supercomputadora. O, si quieres escalar tu base de datos de la otra manera, escalarás horizontalmente, lo que significa que tendrás una instancia principal y algunas réplicas. Entonces, cuando obtienes datos, se distribuyen en las réplicas y así sucesivamente.

Pero luego crecerás más. Y estamos hablando de datos a gran escala, por lo que es importante establecer este contexto. Crecerás un poco más. En algún momento, te darás cuenta de que nuestra base de datos sigue siendo lenta para leer. Y eso se debe a que generalmente las bases de datos leen desde el disco. El disco, por diseño, no es tan rápido como qué cosa. Memoria. Memoria. Así que, ahora, he tenido esta conversación al menos 50 veces en la última semana. Eso es una mentira porque soy un orador público. Realmente no lo he hecho. Pero ya sabes cómo es.

Entonces, agregarás algún tipo de base de datos en memoria solo para leer más rápido. Esto probablemente también estará distribuido. Y ahora tu aplicación hablará con esa cosa para obtener datos rápidos. Y si no está en caché, entonces lees desde la base de datos. ¿De acuerdo? Esto es cercano a cómo se ven las cosas a gran escala. Creo que el sitio web de Kent C. Dodd tiene algo así en la parte posterior. Pero a medida que acumulas volumen de datos, ¿cuál es la característica común en cosas con toneladas de volumen de datos? Búsqueda. Entonces, GitHub, TikTok, Instagram. Eventualmente, cuando tengas suficientes datos, necesitarás búsqueda. Y ahora se vuelve complicado, ¿verdad? Porque tu aplicación puede leer desde el motor de búsqueda, pero estará vacío. Solo estás como... De acuerdo.

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

No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Los humanos son solucionadores de problemas naturales y somos lo suficientemente buenos en eso que hemos sobrevivido a lo largo de los siglos y nos hemos convertido en la especie dominante del planeta. Debido a que somos tan buenos en eso, a veces también nos convertimos en buscadores de problemas, buscando problemas que podemos resolver. Aquellos que logran sus objetivos de la manera más exitosa son los eliminadores de problemas. Hablemos de la distinción entre resolver y eliminar problemas con ejemplos de dentro y fuera del mundo de la codificación.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
Jotai es una biblioteca de gestión de estado. La hemos estado desarrollando principalmente para React, pero conceptualmente no está vinculada a React. En esta charla, veremos cómo funcionan los átomos de Jotai y aprenderemos sobre el modelo mental que deberíamos tener. Los átomos son una abstracción agnóstica del marco para representar estados, y básicamente son solo funciones. Comprender la abstracción de átomo ayudará a diseñar e implementar estados en sus aplicaciones con Jotai
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Como desarrolladores, pasamos gran parte de nuestro tiempo depurando aplicaciones, a menudo código que ni siquiera escribimos. Lamentablemente, a pocos desarrolladores se les ha enseñado cómo abordar la depuración, es algo que la mayoría de nosotros aprendemos a través de la experiencia dolorosa. La buena noticia es que _puedes_ aprender a depurar de manera efectiva, y hay varias técnicas y herramientas clave que puedes usar para depurar aplicaciones de JS y React.
Principios para Escalar el Desarrollo de Aplicaciones Frontend
React Summit 2023React Summit 2023
26 min
Principios para Escalar el Desarrollo de Aplicaciones Frontend
Top Content
Después de pasar más de una década en Google, y ahora como el CTO de Vercel, Malte Ubl no es ajeno a ser responsable de la infraestructura de software de un equipo. Sin embargo, estar a cargo de definir cómo las personas escriben software, y a su vez, construir la infraestructura que están utilizando para escribir dicho software, presenta desafíos significativos. Esta presentación de Malte Ubl revelará los principios guía para liderar una gran infraestructura de software.
Luchando contra la Deuda Técnica con la Refactorización Continua
React Day Berlin 2022React Day Berlin 2022
29 min
Luchando contra la Deuda Técnica con la Refactorización Continua
Top Content
Afrontémoslo: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de Frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica. En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
El desarrollo web moderno es fantástico. ¡Hay tantas herramientas geniales disponibles! El desarrollo web moderno es agotador. ¡Hay tantas herramientas geniales disponibles! Cada uno de estos sentimientos es cierto. Lo que es genial es que la mayoría de las veces, es difícil tomar una decisión que sea incorrecta. En serio. Los compromisos de la mayoría de los marcos y herramientas que podrías usar para construir tu aplicación se ajustan a las limitaciones de la gran mayoría de las aplicaciones. A pesar de esto, los ingenieros luchan constantemente con la parálisis del análisis.Hablemos de esto, y de una solución en la que estoy trabajando para ello.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
React a Escala con Nx
React Summit 2023React Summit 2023
145 min
React a Escala con Nx
Top Content
Featured WorkshopFree
Isaac Mann
Isaac Mann
Vamos a utilizar Nx y algunos de sus plugins para acelerar el desarrollo de esta aplicación.
Algunas de las cosas que aprenderás:- Generar un espacio de trabajo Nx prístino- Generar aplicaciones frontend React y APIs backend dentro de tu espacio de trabajo, con proxies preconfigurados- Crear librerías compartidas para reutilizar código- Generar nuevos componentes enrutados con todas las rutas preconfiguradas por Nx y listas para usar- Cómo organizar el código en un monorepositorio- Mover fácilmente las librerías alrededor de tu estructura de carpetas- Crear historias de Storybook y pruebas e2e de Cypress para tus componentes
Tabla de contenidos: - Lab 1 - Generar un espacio de trabajo vacío- Lab 2 - Generar una aplicación React- Lab 3 - Ejecutores- Lab 3.1 - Migraciones- Lab 4 - Generar una librería de componentes- Lab 5 - Generar una librería de utilidades- Lab 6 - Generar una librería de rutas- Lab 7 - Añadir una API de Express- Lab 8 - Mostrar un juego completo en el componente de detalle de juego enrutado- Lab 9 - Generar una librería de tipos que la API y el frontend pueden compartir- Lab 10 - Generar historias de Storybook para el componente de interfaz de usuario compartido- Lab 11 - Prueba E2E del componente compartido
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.