Abracadabra: La Red Desaparecida

Rate this content
Bookmark

La red que se encuentra entre nuestro servidor y el cliente es lo que causa la mayor complejidad en nuestro proceso de desarrollo. Ya sea la interfaz de usuario inicial que generamos en el servidor, las llamadas API que hacemos mientras el usuario navega, o los envíos de formularios que realiza nuestro usuario, mantener la aplicación receptiva y actualizada es una tarea enorme.

¿Cómo sería si toda esa complejidad simplemente desapareciera? Sería increíble, eso es lo que sería. Y React Server Components y Actions son lo que está haciendo eso posible. En esta charla, exploraremos cómo está sucediendo eso y cómo podemos aprovechar esta increíble experiencia de desarrollador para ofrecer experiencias de usuario aún mejores.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

Kent C. Dodds
Kent C. Dodds
32 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Estoy muy emocionado de compartir mi experiencia en desarrollo de software. La charla se centra en React y la Red Desaparecida, con el objetivo de hacer que la gestión de la red desaparezca. Comienza con el paradigma de aplicaciones de múltiples páginas y avanza hacia la mejora de la experiencia del usuario y la transición a la arquitectura de aplicaciones de una sola página. La charla discute la eliminación de duplicaciones, la transición a una API JSON y la utilización de React y acciones de usuario. Explora la mejora progresiva con Remix, el paso a React moderno con componentes del servidor y la mejora de la comunicación servidor-cliente y la interfaz de usuario. También cubre la separación del código servidor-cliente, Epic React versión dos, plugins de IA, Next.js, compensaciones, pruebas, consultas SQL y la optimización para el cambio.

1. Introducción a React y la Red Desaparecida

Short description:

Estoy muy emocionado de estar aquí y compartir mi experiencia en desarrollo de software. Tuve una pasantía donde tuve que agregar una casilla de verificación a una aplicación. El código era complejo, pero la interfaz de usuario era fácil. El trabajo fue difícil debido a la gestión de la red. Quiero hacer que la red desaparezca y discutirlo en esta charla. Está basado en una masterclass gratuita llamada React and the Vanishing Network.

Estoy muy emocionado de estar aquí, y tengo mucho que compartir con ustedes, así que estoy encantado de que no tengamos que hacer esto. Acabamos de hacer eso. Así que vamos a entrar directamente en la hora del cuento.

Cuando recién comenzaba en el desarrollo de software, tuve una pasantía en una empresa llamada Domo, y construimos una aplicación que era una aplicación de inteligencia empresarial. Esto era BI antes de que la IA fuera demasiado popular. Y cuiden sus ojos. Esta es la única diapositiva brillante que tengo para ustedes, pero los va a cegar. Y ahora puedo verlos.

Así que esta es la aplicación, y me pidieron como pasante que agregara una casilla de verificación. En realidad no era esta casilla de verificación porque la interfaz de usuario se ve completamente diferente ahora de lo que se veía entonces, pero vamos a imaginar. Me pidieron que agregara esa casilla de verificación. Aquí está el código para eso. Era un modelo y vista de backbone. Vamos a ver esto en detalle. Así que ese es nuestro modelo. Y luego aquí hay un poco de nuestra vista. No, es broma. No vamos a ver eso. Y en realidad tampoco es el código. Eso fue ChatGBT. Pero era material de backbone. Era un modelo de 1,000 líneas, una vista base de 2,000 líneas, y una vista de 1,000 líneas que extendía la vista base. Con eso tuve que trabajar para agregar esta casilla de verificación. Me tomó como cinco minutos agregar la interfaz de usuario para eso.

Pero quiero saber, solo grítenlo porque no puedo ver si levantan las manos. ¿Cuánto tiempo creen que me tomó agregar esta función? ¿Dos sprints? ¿Un día? ¿Dos horas? Cinco meses, OK. Me tomó dos semanas. Y soy como el pasante tratando de demostrarme a mí mismo, y lo hice. Sí, demostré que soy incompetente, supongo. Fue tan triste. ¿Por qué creen que tomó tanto tiempo? Griten esto. Complejidad. OK, así que en general, complejidad. Sí, había mucho código. ¿Qué específicamente hace que este trabajo sea tan complejo? JavaScript. Sí, no estás equivocado. Es la gestión de la red. La carga de los datos y hacer la mutación. Agregar la interfaz de usuario fue súper rápido. Eso no fue difícil. Es solo una plantilla HTML en mi vista de backbone, pero gestionar esa red, hombre, eso fue difícil. Y eso es lo que hizo que tomara dos semanas. Así que quiero hacer que la red desaparezca por completo, desaparezca completamente. Y por eso vamos a ver qué está pasando con nuestro código de red en nuestras aplicaciones.

El resto de mi charla está basada en una masterclass que es completamente gratuita. Puedes pasar por todo esto tú mismo. Y eso es lo que vamos a repasar aquí. Es el React and the Vanishing Network. Puedes revisar esto más tarde. Vamos a avanzar bastante rápido a través de esto.

2. Explorando el Paradigma de Aplicaciones Multi-Página

Short description:

Así que estamos comenzando con el paradigma de aplicaciones multi-página. Generamos HTML, obtenemos un conteo de la base de datos y lo renderizamos. Creamos un formulario para actualizar el conteo, manejamos la ruta, convertimos los datos del formulario, actualizamos el conteo y redirigimos. Hay un código de red mínimo, pero avanzamos para una mejor experiencia de usuario. Hacer clic en el botón provoca una actualización completa de la página, dificultando los incrementos rápidos para los usuarios de teclado.

Así que lo revisé antes, y deberías poder ver eso. Si no, lo siento mucho. Hice lo mejor que pude. Pero sí, vamos a comenzar con el paradigma de aplicaciones multi-página donde todos comenzamos. Así que tenemos esta aplicación simple sirviendo desde la barra.

Vamos a generar algo de HTML. Así que obtengamos un conteo de nuestra base de datos. Vamos a renderizar ese conteo aquí. Y aquí, guardemos eso y aseguremos que estamos en un buen lugar. Boom. Conteo cero. Magia. La web todavía funciona. Siempre apuesta por la web.

Ahora vamos a hacer un formulario para que podamos actualizar esto. Y así estamos publicando para actualizar el conteo. Y luego tenemos estos botones que pueden tener un nombre y un valor. ¿Sabías eso? Eso es algo genial. Así que cualquiera que hagamos clic es lo que se enviará al back end. Así que eso es genial. Ahora, si intento hacer clic en uno de esos, no va a funcionar porque estamos yendo a esa ruta y no estamos manejando esa ruta. Así que manejemos esa ruta ahora. Vamos a manejar un post para actualizar el conteo. Tenemos nuestros datos del formulario. Vamos a convertir eso en un número porque eso pasa como una cadena. Vamos a actualizar el conteo, cambiarlo, comprar ese cambio, y luego redirigir porque estamos haciendo post redirect get. Si no sabes lo que eso significa, entonces pregunta a tus mayores. Y vamos a decrementar e incrementar. Ahí estamos. Genial. Funciona. OK, así que echemos un vistazo al código de red. ¿Dónde está el código de red aquí? Bueno, en realidad no hay mucho. Pero hay algo. Algo de código relacionado con la red. Tenemos esta barra aquí. Esa es la URL. Está muy relacionada con la red. Nuestra acción se está definiendo aquí. Así que eso es un poco de código de red también. Incluso nuestro método está relacionado con la red. Y luego, por supuesto, manejar eso y hacer la redirección. Todo eso está algo relacionado con la red. O bastante cerca. Pero realmente no hay mucho código de red aquí. Y esta es la razón por la que muchas personas que construyeron aplicaciones usando la arquitectura de aplicaciones multi-página realmente lamentan la forma en que hacemos las cosas ahora porque realmente es así de simple. Pero hay una razón por la que avanzamos desde esto. Y la razón es la experiencia del usuario. Así que queremos tener una experiencia de usuario mucho mejor porque ahora mismo lo que estamos obteniendo es una actualización completa de la página cada vez que hacemos clic en esto. Y así, si quisiera incrementar muy rápidamente y fuera un usuario de teclado, voy a tocar, tocar, incrementar, tocar, tocar, incrementar, tocar, tocar, incrementar.

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

UX Asincrónico
React Advanced 2021React Advanced 2021
21 min
UX Asincrónico
Top Content
Today's Talk covers the importance of building Asynchronous UX with React and single-page applications, providing code and UX examples. It explores data fetching, adding progress indicators, handling errors, and user-initiated actions. The Talk also discusses handling component unmounts, multiple actions, idempotency, and context loss. Finally, it touches on considerations for optimistic updates and the use of CRDT or other technologies for collaborative applications.
Las animaciones en React Native deben ser divertidas
React Advanced 2022React Advanced 2022
28 min
Las animaciones en React Native deben ser divertidas
This talk is about animations in React Native, specifically focusing on React Native Reanimated. It covers the use of interpolations and extrapolations in animations, animating items in a carousel or list, sticky elements and interpolation, and fluidity and layout animations. The talk provides valuable tips and tricks for creating performant animations and explores the use of math formulas for natural movements.
Remixando Cómo Donamos
Remix Conf Europe 2022Remix Conf Europe 2022
32 min
Remixando Cómo Donamos
Daphne uses Remix for their web application, benefiting from its resilience, error boundaries, cache boundaries, and progressive enhancement. Remix simplifies form submission, authorization, and validation, and allows for easier refactoring and code duplication avoidance. Next and Remix are used together, with Remix serving as the backend for the frontend and handling data aggregation. Remix provides query functions for fetching data, mutations for form data validation and API calls, and custom conventions using the handle export. Migrating to Remix resulted in smaller JavaScript files, faster navigation, and the ability to preload data and assets. The migration process took around nine months and involved mixing Next.js and Remix using Express. Hiring someone to work on Remix is easier than hiring for other frameworks.
Mejora el rendimiento de tu aplicación con trabajos en segundo plano
React Summit 2024React Summit 2024
29 min
Mejora el rendimiento de tu aplicación con trabajos en segundo plano
This is a background jobs one-on-one talk focusing on the challenges and benefits of using background jobs in software development. It explores the complexity of software development and the impact of distributed applications. The talk highlights the use of Ingest as a reliable solution for executing functions in the background and building drip campaigns. It emphasizes the importance of reliability and architectural choices in software development and discusses the features and capabilities of Ingest, including local development, handling failures, and data retrieval.
Lecciones aprendidas de la construcción de aplicaciones interactivas en React
React Summit Remote Edition 2021React Summit Remote Edition 2021
35 min
Lecciones aprendidas de la construcción de aplicaciones interactivas en React
Animations can enhance the user experience and provide context in interface design. Using frame and motion in React can create smooth fade-in effects and improve navigation. Optimistic updates and instant comment appearance can eliminate waiting time and improve user experience. Motion can be used in multiple ways to give context and enhance user experience. Accessibility and performance should be considered when implementing animations. Choosing the right library, such as frame of motion or React Spring, can simplify animation implementation. Animations can enhance perceived performance and influence users' perception of speed.
El rendimiento es la experiencia del usuario: Optimizando el frontend para los usuarios
JSNation 2022JSNation 2022
8 min
El rendimiento es la experiencia del usuario: Optimizando el frontend para los usuarios
Today's Talk discusses software performance and optimizing the frontend for the user. It emphasizes the importance of passive performance, which is a subjective measure of how well users perceive the application's performance. Techniques to improve performance include using a shared cache, HTTP2, preloading requests, and CDN. Optimizing frontend performance involves avoiding blocking the main thread, loading necessary resources first, using progress bars, and implementing optimistic patterns. It also highlights the importance of considering users' changing expectations throughout their interaction with the application.