Video Summary and Transcription
Esta charla trata sobre el uso de historias de cómics para explicar conceptos complejos de desarrollo de software. La primera parte presenta al orador y el propósito de la charla. La segunda parte explora el concepto de hidratación usando a Iron Man como ejemplo. La hidratación es una solución para hacer interactivo el código renderizado en el servidor. La charla luego pasa a discutir la reanudabilidad, que permite la interactividad inmediata al codificar información extra en el HTML. El concepto de reanudabilidad se explica aún más usando una historia con Iron Man. La charla concluye invitando sugerencias para futuros temas y agradeciendo a la audiencia.
1. Introducción a la Charla
Estoy aquí en la Cumbre React para compartir esta nueva charla. Asistir a conferencias puede ser abrumador, especialmente con todo el argot técnico. Me di cuenta de que necesitaba mejores modelos mentales para entender estos conceptos. Como un nerd de los cómics, decidí combinar mi amor por los personajes y los conceptos técnicos para crear una guía nerd. Permítanme presentarme como Daniel Afons, un defensor del desarrollador en OLX. No duden en conectarse conmigo en las redes sociales. Por favor, tengan en cuenta que esta charla incluye historias hechas por fans con personajes de Marvel y DC Comics.
Estaré en la Cumbre React. Muchas gracias por tenerme aquí. Es un placer estar aquí con todos ustedes hoy para compartir esta nueva charla que estoy intentando presentar. Así que, espero que se diviertan tanto viéndola como yo escribiéndola.
Entonces, comencemos. Bueno, todo esto comenzó cuando asistía a un par de conferencias. Y asistir a conferencias puede ser un poco abrumador. No sé si entienden a qué me refiero. Pero hay tantas palabras que aparecen de un lado a otro, que, bueno, si son como yo, no muy a menudo van a entender lo que todas ellas significan.
El problema que me impulsó a hacer esto es porque no tenía los modelos mentales correctos formados para estas cosas. Ahora, no sé si están al tanto de lo que es un modelo mental. Los modelos mentales son los términos, imágenes, palabras o lo que sea que asocias con un cierto tema. Por ejemplo, imagina dormir. Cuando oyes la palabra dormir, inmediatamente entiendes todos los pasos asociados a ella en tu mente. Esto es porque tienes los modelos mentales correctos formados para ellos.
Ahora, pausando eso por un momento, permítanme contarles algo sobre mí. Soy un gran nerd de los cómics. Tengo más cómics de los que puedo leer y es posible que me encuentren regularmente haciendo chistes de cómics o de la cultura pop. Entonces, un día pensé, ¿qué pasaría si pudiera conseguir que los personajes que amo, los conceptos técnicos que me pierdo para escribir modelos mentales, y construyo una guía nerd para los conceptos de tendencia en la web? Así que, esta es la esencia de la charla que vamos a ver.
Antes que nada, permítanme presentarme. Mi nombre es Daniel Afons. Trabajo como defensor del desarrollador en OLX. Soy instructor de IDN. Soy embajador de Altura. Pueden encontrarme en X y prácticamente en cualquier red social con el nombre de usuario DanielJCAfons. También algo sobre mí, recientemente publiqué un libro sobre React Query. Parte del libro es gestión de estado con React Query. Estoy dispuesto a charlar sobre todas las cosas relacionadas con React Query. No duden en contactarme en las redes sociales. Ahora, antes de comenzar la charla, solo quiero hacer una pequeña aclaración, que es que esta charla incluirá algunas historias hechas por fans utilizando personajes que son propiedad de Marvel o DC Comics.
2. Introducción a la Charla (Parte 2)
Estoy compartiendo esto para ayudar a construir los modelos mentales correctos. Quiero agradecer a Attila y Matheus por sus comentarios sobre los modelos mentales. Esta charla consiste en presentar un tema y dos personajes, contar una historia de cómic y luego explicar los aspectos técnicos. Hoy, exploraremos la hidratación con Iron Man. Después de construir varias armaduras a mano, Tony Stark reprogramó su IA, Friday, para automatizar el proceso. Friday construyó con éxito una nueva armadura.
Estoy compartiendo esto para que estén al tanto de los personajes que verán. No los poseo, pero los estoy utilizando para ayudar a construir los modelos mentales correctos en todos ustedes.
Otra cosa importante que quiero decir es que quiero compartir algo de amor. Quiero agradecer a estas increíbles personas, Attila y Matheus, porque sin ellos, esta charla no sería lo que es hoy. Me dieron los comentarios correctos y los comentarios sobre los modelos mentales. Así que solo quiero compartir algo de amor y agradecerles por construir esta charla y ayudarme a construir esta charla.
Ahora, antes de comenzar, ¿cómo funcionará esta charla? Bueno, idealmente, si estuvieran en persona, ustedes decidirían. Verán, esta charla va a consistir en un par de cosas. Primero, lo que sucede es que les presento un tema y dos personajes. Para cada personaje, idealmente, la audiencia elegiría qué personaje veríamos. Luego, para el personaje seleccionado, les contaría una historia de cómic. Después de terminar esa historia, les mostraría las explicaciones técnicas detrás. Comenzaríamos con la historia y luego pasaríamos al concepto técnico de la misma. Como hoy estamos haciendo esto en línea y no en persona, solo estaré eligiendo personajes de Marvel así que iremos con los personajes de Marvel.
En esta charla, hoy, veremos dos temas. Veremos la hidratación y la reanudabilidad. Espero que estén listos para comenzar porque es hora de la hidratación. Para la hidratación, como dije, si ustedes estuvieran eligiendo, podrían elegir entre Iron Man o Lex Luthor. Ambos nos ayudarían a ver la historia de la hidratación. Para este escenario, considerando, como dije, una vez más, que estamos en remoto, estoy eligiendo a Iron Man, así que solo elijo al personaje. Y ahora tomaré el papel de narrador y les contaré una historia. Y después de que termine la historia, veremos los aspectos técnicos de la misma. Así que espero que estén listos, yo estoy listo. Entonces, después de construir Mark 1, Mark 2 y Mark 3 a mano, Tony Stark no quería repetir el proceso de construir una nueva armadura por sí mismo. Verán, hacer esto es un proceso bastante lento, y Tony quería que fuera más rápido, así que pensó, tal vez pueda reprogramar a Friday, su IA personalizada, para que conozca todos los pasos para construir una nueva armadura. Y una vez que lo hizo, todo lo que quedaba era pedirle a Friday que le construyera esa armadura. Y lo hicieron. Así que Friday se conectó a la fabricación y comenzó a trabajar. Después de un rato, la armadura estaba lista. Gran éxito.
3. Hidratación con Iron Man
Tony intentó entrar en la armadura, pero no se abrió. Tuvo la idea de descargar a Friday para activar la armadura desde el interior. Después del proceso de descarga, Friday activó cada parte de la armadura. Con la armadura activada, Tony fue a una prueba de funcionamiento, pero no todo funcionó a la primera. Esto fue la Hidratación con Iron Man, Tony Stark.
¿Estamos listos para luchar, verdad? Entonces Tony dijo, OK, vamos a entrar en la armadura. Y lo intentó. Así que intentó entrar en la armadura, pero aparentemente algo no funcionó del todo bien. El traje ni siquiera se abrió. Y esto dejó a Tony pensando, porque sentado allí con un traje no interactivo, Tony luchó un poco, hasta que, bueno, una idea surgió en su mente. ¿Y si descargara a Friday en la armadura, y luego Friday podría activar la armadura desde el interior? Sería interesante, ¿verdad? Así que lo hizo. Y esperamos, y esperamos un poco, y después de que se completó el proceso de descarga, la nueva armadura tenía a Friday funcionando en ella. Así que una vez que Friday se inició, comenzó a activar cada parte de la armadura como si hiciera una revisión del sistema en ella. Como puedes ver en este muy pobre DidGif, puedes ver que la luz se está encendiendo en cada parte individualmente. Así que esto simbolizaba el proceso de Friday revisando cada parte de la armadura y activándola. Y ahora que la armadura está activada, Tony pudo ponerse el traje e ir a una prueba de funcionamiento. Así que, activó los propulsores, y bueno, no todo funciona a la primera vez, pero esto fue la Hidratación con la ayuda de Iron Man, Tony Stark, así que espero que si estás añadiendo nueva Hidratación, te des cuenta de algunos de los pasos.
4. Hidratación y cómo funciona
La hidratación resuelve el problema de que el código renderizado en el servidor no sea interactivo. Al descargar el marco y ejecutar el proceso de reconciliación, el marco puede interactuar con el HTML y adjuntar manejadores de eventos, haciendo que la página sea interactiva.
Si no lo hiciste, ahora repasemos qué diablos acabamos de ver. Entonces, comencemos con el problema. La hidratación está ahí para resolver un problema, que es que el código renderizado en el servidor no es interactivo. E idealmente, lo que necesitamos es una página que sea interactiva. Entonces, cómo funciona típicamente es en el servidor, en el código del lado del servidor, usando el marco, generamos nuestro HTML estático. Pero ahora, una vez que obtenemos la página, la página no es interactiva porque, bueno, es solo estática HTML y CSS. Entonces, lo que necesitamos hacer es descargar Javascript, en este caso, el marco, luego ejecutar el marco y ejecutar lo que se llama el proceso de reconciliación. Y después de que se ejecuta el proceso de reconciliación, es cuando el marco, el Javascript que acabamos de descargar, repasa cada parte del HTML e interactúa y adjunta manejadores de eventos y toda la interactividad que necesitamos. Y después de esto, es cuando obtenemos la página interactiva. Y esto es más o menos cómo funciona la hidratación.
5. Resumen de Hidratación e Introducción a la Reanudabilidad
Repasemos cómo se configura esto en la historia. Comenzamos con el problema de la lenta renderización del lado del cliente y la idea de enseñar al marco cómo construir una página. El servidor construye un nuevo HTML estático utilizando el marco, y el cliente recibe este HTML estático. Sin embargo, la página aún no es interactiva. El cliente necesita esperar a que el marco se descargue y ejecute el proceso de reconciliación, adjuntando manejadores de eventos y lógica para hacer que la página sea completamente interactiva. Esto es hidratación. Ahora, pasemos a la siguiente historia, Reanudabilidad, con Ironman.
Repasemos cómo se configura esto en la historia. Así que comenzamos con esta parte, donde Tony dijo que construir una nueva armadura debería ser más rápido. El problema que estábamos planteando aquí es que la renderización del lado del cliente es lenta. ¿Y si enseñáramos al marco cómo construir una página? Porque, idealmente, el marco sabe cómo hacerlo. En el lado del servidor, utilizando el marco, el servidor construye el nuevo HTML estático. Y luego, lo que va a suceder es que el cliente va a obtener el HTML estático.
Ahora, planteamos otro problema en la siguiente parte de la historia, que es, ahora el código renderizado del lado del servidor no es interactivo porque tenemos la armadura, pero la armadura no funciona. Solo está ahí para mostrarse. Y esto es lo que sucede antes de que se ejecute la hidratación. Entonces, lo que necesitamos hacer es que vamos a hacer que el marco convierta el HTML estático en HTML interactivo. Así que necesitamos que el marco se descargue en la página. Así que el cliente necesita esperar a que eso suceda. Después de un rato, después de que el cliente obtiene el marco, el marco repasará el HTML y lo adjuntará hacia atrás y toda la lógica necesaria para ejecutar cada nota correspondiente. Y, después de un rato, felicitaciones, la página ahora es completamente interactiva.
Y acabamos de ver la hidratación con la ayuda de Ironman, así que repasemos todos los pasos que vimos en esta historia y asegurémonos de tener el modelo mental correcto. Así que la hidratación está ahí para resolver un problema, que es el código SSR, el código renderizado del lado del servidor, necesita algún tipo de interactividad. El primer paso asociado con esto es generalmente cuando un cliente solicita una página, utilizando el marco el servidor construye un nuevo HTML estático y lo envía al cliente y luego el cliente obtiene este HTML estático. Pero ahora hay un problema, que es que la página no es interactiva, por lo que el cliente necesita esperar a que se descargue el marco. Una vez que se descarga el marco, el marco ejecuta lo que se llama el proceso de reconciliación. Así que el marco repasará el HTML y adjuntará manejadores de eventos y la lógica necesaria para ejecutar cada nodo correspondiente. Y después de un rato, la página ahora es completamente interactiva. Y esto fue hidratación. Acabamos de ver la hidratación con la ayuda de Ironman. Espero que todos hayan disfrutado esta historia, porque ahora vamos a saltar a la siguiente, que va a ser Reanudabilidad. Y la Reanudabilidad es una historia diferente, un personaje diferente. En este caso vamos a usar los mismos personajes porque vamos a retomar un poco después de donde lo dejamos. Así que podríamos elegir entre Ironman o Lex Luthor, pero como dije vamos por el camino de Marvel para esta charla, así que vayamos una vez más con Ironman. Ahora entendamos lo que Ironman tiene que decirnos sobre la Reanudabilidad. Y ahora, una vez más, pondré al narrador y comencemos esto. Así que vamos.
6. Protocolo Reanudable y Construcción de un Nuevo Traje
Después de quedarse sin armaduras, Tony Stark le pide a Friday que le construya un nuevo traje. Sin embargo, sabe que el antiguo proceso no es viable. Necesita un traje que esté listo para funcionar. Tony instruye a Friday para que inicie el protocolo reanudable y le construya un traje ahora.
Después de la última vez que salvó al mundo en la lucha contra Kang, el Conquistador, Tony recibió un gran golpe. Verás, se quedó completamente sin armaduras. Todas fueron destruidas en esta pelea. Ahora, de vuelta en casa mientras se dirigía a la cama, Tony le pidió a Friday, Friday por favor recuérdame construir nuevos trajes mañana. Y se quedó dormido. Verás, salvar al mundo es una tarea difícil y Tony realmente, realmente merecía este sueño tanto. Pero de repente, ocurrió una explosión. ¿Qué? Te estarás preguntando. Bueno, verás, el Mandarin no puede dejar pasar esto. Verás, es un Tony Stark vulnerable, después de todo. Y Tony se despertó sobresaltado, obviamente, y grita, OK, necesito un nuevo traje. Pero Tony también sabía algo.
7. Protocolo Reanudable y el Nuevo Traje
Sabía que no sobreviviría al antiguo proceso. Tony necesitaba una armadura que estuviera lista para trabajar, así que le pidió a Friday que iniciara el protocolo reanudable y le construyera un traje. Friday codificó información e instrucciones en cada parte interactiva del traje. Cuando Tony estuvo rodeado por el Mandarin y sus secuaces, saltó a su nuevo traje, que tenía una pequeña versión de Friday cargada. Esto permitió que el traje omitiera la fase de comprobación del sistema. Tony le pidió a Friday que disparara los cohetes, y estos destruyeron con éxito su casa, permitiéndole escapar y pedir refuerzos. ¡Manténganse en sintonía para el próximo número!
Sabía que no sobreviviría al antiguo proceso. El proceso actual, no es tan bueno. Podrías poner en marcha al fabricante y tener a Friday construyendo en Yharbor, pero muy probablemente el tiempo para descargar a Friday al traje significaría la muerte o que no sobreviviría. Y esto dejó a Tony pensando, OK, Tony, Tony, piensa, piensa, piensa.
Y durante este tiempo, se pudo ver a algunos secuaces de Hydra persiguiéndolo. Y esto obligó a Tony a pensar, bueno, necesito una armadura que esté lista para trabajar. Así que probablemente Friday, haz esto, inicia el protocolo reanudable, constrúyeme un traje ahora. Y Friday comenzó a construir el traje.
Pero ahora, el proceso cambió. Verás, para cada parte específica del traje que sería interactiva, Friday codificaría esta información allí. Friday también codificaría un puntero que indicaría a sí mismo dónde encontrar instrucciones para operar esta parte de la armadura cuando llegue el momento. Ahora, volviendo a Tony, mientras corría, se encontró rodeado por el Mandarin y sus secuaces. Y como suele suceder en este tipo de películas o films o lo que sea, el Mandarin comenzó este monólogo de malo. Stark, ¿no crees que saldrás vivo? Al final, apunta su mano a Tony y se prepara para disparar su rayo de desintegración. Y mientras hace esto, Tony salta a su nuevo traje billy y el traje lo atrapa y lo salva de una explosión segura que probablemente lo eliminaría.
Ahora, esto enfureció al Mandarin. Verás, él sabía sobre las debilidades que tenía el proceso anterior. Sabía que no había forma de que Tony obtuviera una armadura tan rápido y lista para usar. ¿Qué pasó? ¿Cómo? ¿Cómo funcionó esto? Verás, en el Protocolo Reanudable, cuando Friday creó la armadura, ya cargó una versión muy pequeña de sí misma en el traje. Esta pequeña versión de Friday fue capaz de interceptar cualquier comando de Tony y al usarlo y las instrucciones codificadas, averiguar sobre la marcha cómo ejecutar su instrucción específica. Esto permitiría a la armadura omitir la fase de comprobación del sistema. Ahora, volviendo a Tony. Friday, dispara los cohetes, pidió. Bueno, dentro del casco, mientras hacía esta pregunta, escuchó a Friday diciendo, Encendiendo los cohetes, Tony. Una vez que los cohetes estuvieron listos, y Friday se lo hizo saber a Tony, Tony los encendió. Boom. Y una vez que lo hizo, los cohetes derrumbaron la casa de Tony y a todos los que estaban en el camino. Y esto aseguró que, bueno, Tony pudiera escapar y pedir refuerzos. ¿Qué pasó después, podrías estar pensando? Bueno, para eso, puedes esperar el próximo número. Bienvenidos al mundo de los cómics.
8. Reanudabilidad y Cargador QUIC
La reanudabilidad está ahí para resolver el problema de que la página no sea inmediatamente interactiva. Al codificar información adicional en el HTML en el lado del servidor, podemos reanudar la ejecución desde el servidor en el cliente, haciendo que la página sea inmediatamente interactiva. El cliente solo descarga el JavaScript específico necesario para cada parte del código, permitiendo una descarga pequeña y eficiente. El Cargador QUIC intercepta eventos y descarga el JavaScript necesario para la ejecución, haciendo que la página sea interactiva. Así es como la reanudabilidad encaja en nuestra historia.
No todo se resuelve en una semana. Así fue la reanudabilidad con la ayuda de Tony Stark Iron Man. Ahora, repasemos lo que acabamos de ver. La reanudabilidad está ahí para resolver un problema, que es que la página no es inmediatamente interactiva. Y durante la hidratación, que es lo que acabamos de ver anteriormente, tenemos que rehacer el trabajo que hicimos en el servidor. Idealmente no deberíamos tener ninguna hidratación. No tener hidratación siempre es mejor que tenerla. Idealmente lo que haríamos es, una vez que estamos construyendo este HTML en el lado del servidor, codificaríamos alguna información, información extra allí, que nos permitiría reanudar nuestra ejecución desde el servidor en el cliente. Esto significaría que una vez que obtuvimos la página en el cliente, la página sería inmediatamente interactiva.
Ahora, podrías estar pensando, vale, pero si no descargamos todo el JavaScript y todas las cosas que necesitamos, ¿cómo tenemos el JavaScript para ejecutar una vez que hacemos clic en ese botón? Bueno, lo que haríamos aquí es que descargaríamos solo el JavaScript específico para hacer esto, y solo el JavaScript que sería responsable de esta parte del código. Ahora, uno de los frameworks que se hizo muy popular al usar la reanudabilidad, se llama QUIC, y hay una razón por la que te estoy contando esto, porque en realidad hay otra parte en Movilhood. Una vez que obtuvimos la página o HTML, también obtendríamos algo llamado Cargador QUIC, y este Cargador QUIC sería responsable de interceptar este evento QUIC, y sería responsable de descargar este JavaScript específico para esa parte específica. Así que sería solo un pedacito muy, muy pequeño de JavaScript que sería capaz de permitir que hagamos esto.
Así que ahora, veamos cómo encajó la reanudabilidad en nuestra historia. Bueno, primero tuvimos un problema, que era que la hidratación es lenta. Así que una vez que el cliente solicita una nueva página, nosotros, usando el framework, el servidor construye este nuevo HTML, pero también serializa toda la información que necesita para reanudar su ejecución en el nuevo entorno. Después, una vez que el cliente obtiene la página, es inmediatamente interactiva. Ahora también hay algo aquí, que es que el cliente obtiene el Cargador QUIC. Recuerda, mencioné esta cosa llamada Cargador QUIC. El Cargador QUIC configurará un oyente global para todos los eventos. Así que cuando sucede un evento, lo que hará el Cargador QUIC es interceptarlo, obtener el JavaScript necesario para ejecutar esa parte, y ejecutarlo. Y felicitaciones, todos acabamos de aprender Reanudabilidad de nuevo con la ayuda de nuestro amigo Ironman. Así que repasemos lo que acabamos de ver. La reanudabilidad está ahí para solucionar un problema, que es que la página no es inmediatamente interactiva e idealmente no habría ninguna iteración. Así que veamos los pasos del modelo mental. El primero es que una vez que el cliente solicita la página, usando el framework el servidor construye la nueva página HTML y serializa toda la información que la página va a necesitar para reanudar su ejecución en el nuevo entorno. Una vez que el cliente obtiene la página, es inmediatamente interactiva. El cliente también obtiene esta cosa llamada Cargador QUIC, que es un pedacito muy pequeño de JavaScript. Este Cargador QUIC configurará un oyente global para todos los eventos y debido a lo que acabamos de configurar, una vez que sucede un evento el Cargador QUIC lo interceptará y obtendrá el JavaScript necesario para ejecutar este evento y ejecutarlo. Y bueno, esto fue prácticamente la reanudabilidad.
9. Conclusión y Llamado a la Acción
Acabamos de cubrir los temas de iteración y reanudabilidad. Si disfrutaste de esta charla, por favor sugiere más temas para futuras guías nerds. Gracias por ver y mantente atento a los próximos desarrollos. Esta fue una guía nerd para conceptos web en tendencia. Gracias, React Summit. Nos vemos la próxima vez.
Así que vamos a la última diapositiva aquí. Acabamos de ver dos temas, acabamos de ver iteración, acabamos de ver reanudabilidad y podrías estar pensando, ¿cuál es el próximo tema? Bueno, eso lo dejo a tu criterio. Ese es mi llamado a la acción para todos los que están escuchando y viendo esto en casa. Si disfrutaste el concepto de esta charla, por favor sugiéreme temas. Me encantaría construir más guías nerds para todos ustedes. Porque me divierto mucho haciendo esto y me divertí mucho presentándolo y espero que todos ustedes también lo disfruten.
Así que sin más preámbulos, muchas gracias por ver esta charla. Mantente atento para la próxima porque estoy bastante seguro de que habrá desarrollos a partir de esto, especialmente si me ayudas y contribuyes con nuevos temas. Sí, esta fue una guía nerd para los conceptos web en tendencia. Muchas gracias por tenerme, React Summit. Nos vemos la próxima vez. ¡Adiós!
Comments