Visualizando React: Metáforas, Modelos y Medios Espaciales

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Todo el React que has visto se presenta de una manera: como un archivo de texto lineal. Hay una buena razón para esto. La sintaxis textual es un medio ideal para construir lógica abstracta. Es rápido de escribir, densamente informativo y infinitamente flexible. Sin embargo, la brevedad tiene sus desventajas. ¿Qué información no podemos ver en el texto estático? ¿Cómo pueden las representaciones visuales y las comparaciones metafóricas expandir nuestra comprensión de cómo funciona React? Ven a descubrir qué sucede cuando exploramos formas alternativas de ver React.

This talk has been presented at React Advanced 2021, check out the latest edition of this React Conference.

FAQ

La charla de Maggie, titulada 'Una Imagen Vale por Mil Programas', trata sobre la creación de imágenes de programas y cómo estas pueden simplificar y hacer más accesibles los conceptos de programación complejos utilizando metáforas visuales.

Maggie ha trabajado como directora de arte en Egghead.io, una plataforma educativa para desarrolladores web, y ha creado numerosas ilustraciones para representar visualmente conceptos de programación. Además, colaboró en un proyecto llamado Just JavaScript con Dan Abramov y se mudará a un nuevo rol liderando el diseño en Hash.ai.

Maggie argumenta que los visuales pueden hacer que los conceptos de programación sean menos abstractos y más fáciles de entender, utilizando la experiencia corporal y encarnada de los humanos para hacer más accesible y comprensible la programación.

Maggie ha utilizado metáforas visuales como pintar una casa para estilizar CSS y usar trajes en una baraja de cartas para organizar tipos. También ha creado diagramas ilustrados para explicar cómo funciona la herencia de prototipos en JavaScript y cómo funcionan las APIs mediante pequeños camareros robóticos.

Maggie critica que la programación está muy centrada en el texto, lo cual puede ser una barrera para entender conceptos abstractos, dado que los humanos dependen de experiencias físicas y espaciales para entender el mundo. Propone que se debería incorporar más elementos visuales en la programación para facilitar la comprensión.

Maggie sugiere incorporar más visuales en la documentación, los blogs, y los materiales educativos para revelar metáforas, significado espacial, y cambios a lo largo del tiempo en los conceptos de programación, haciendo así la programación más fácil y accesible para todos.

Maggie Appleton
Maggie Appleton
31 min
22 Oct, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla explora el uso de visuales en la programación para hacer los conceptos más accesibles y comprensibles. Discute las limitaciones del texto en la programación y los beneficios de visualizar los conceptos de programación. La charla también se adentra en el uso de metáforas visuales en React y las ventajas de usar principios espaciales y representaciones visuales para entender el comportamiento del programa a lo largo del tiempo. Concluye con sugerencias para avanzar en los esfuerzos de programación visual y aprovechar las metáforas existentes en los lenguajes y marcos de programación.

1. Introducción a los Programas Pictóricos

Short description:

Esta charla trata sobre cómo hacer imágenes de programas y cómo los visuales pueden hacer que los conceptos de programación sean menos abstractos, más fáciles de entender y más accesibles. Las representaciones visuales traen los invisibles conceptos abstractos de programación al mundo corpóreo, donde vivimos e interactuamos con objetos físicos. Los conceptos de programación son ideas abstractas que existen en un espacio liminal, separado de nuestro mundo altamente visual, espacial y físico, lo que hace que la programación sea difícil.

♪♪ ♪♪ ♪♪ ¡Hola! Estoy realmente contenta de no poder veros a todos debido a la luz cegadora que es realmente útil pero esto va a ir bien. Bueno, sí, estamos arriba. Esta charla se llama Una Imagen Vale por Mil Programas y va a tratar sobre hacer imágenes, y específicamente sobre hacer imágenes de programas, y esperemos que sobre hacer imágenes que valgan por mil programas, como dice el refrán tradicional.

Así que, antes de empezar, quiero presentarme rápidamente y haceros saber que estoy aquí en el escenario hablando con vosotros sobre programas pictóricos. Así que, me llamo Maggie. Soy diseñadora, directora de arte, ilustradora, nerd de las metáforas y tangencialmente también construyo cosas con React. Pasé los últimos cinco años trabajando como directora de arte en Egghead.io que es una plataforma educativa para desarrolladores web pero a partir de la próxima semana, me mudaré a un nuevo rol, liderando el diseño en Hash.ai. Pero he pasado toda mi carrera hasta ahora creando representaciones visuales de programas. Durante mi tiempo en Egghead, hice cientos de ilustraciones de portada para los cursos que enseñamos. Cada una de estas empezaría con un concepto de programación abstracto y yo tenía que encontrar una forma de representarlo visualmente en una sola imagen. Aprendí a confiar mucho en las metáforas visuales para estas y estilizar CSS se convirtió en pintar una casa y organizar tipos se convirtió en trajes en una baraja de cartas. He hecho muchos diagramas ilustrados para explicar cómo funciona la herencia de prototipos de JavaScript o qué pasa cuando aplanas un array. Uno que se hizo popular fue un ensayo visual sobre qué son las APIs y cómo funcionan que se contaba a través de pequeños camareros robóticos que te traen los datos que pides. El objetivo era hacer que los temas técnicos complejos fueran más relacionables y fáciles de entender. También colaboré recientemente en un proyecto llamado Just JavaScript con Dan Abramov. Es un curso de JavaScript que enseña los modelos mentales centrales del lenguaje a través de diagramas visuales y animaciones. Así que trabajamos juntos para desarrollar todo este lenguaje visual que era un poco más formal que algunas de las otras ilustraciones que mostré. Cada pieza de sintaxis se correlaciona con una forma visual específica y usamos el sistema para explicar conceptos como asignar propiedades o mutación de objetos. No estoy repasando todo este trabajo para presumir, sólo quería daros contexto sobre el tipo de visuales de programación que he hecho en el pasado para que tengáis una idea de lo que quiero decir cuando digo imágenes de programación.

Así que en este proceso de transformar conceptos de programación en imágenes visuales cientos de veces, me he visto obligada a pensar mucho en la forma en que representamos y comunicamos ideas de programación complejas y he llegado a creer que las representaciones visuales tienen mucho que ofrecernos aquí en la tierra del código. En esta charla voy a mostraros cómo los visuales pueden hacer que los conceptos de programación sean menos abstractos, más fáciles de entender y más accesibles para más personas. También voy a mostraros por qué los visuales son tan especiales y resulta ser relativamente simple y es porque los visuales traen los invisibles conceptos abstractos de programación al mundo corpóreo. El mundo corpóreo es donde tú y yo vivimos. Todos los que están viendo esta charla tienen un cuerpo y lo usan para interactuar con objetos físicos a su alrededor y moverse por el espacio y experimentar eventos a lo largo del tiempo. Todo lo que sabes sobre el mundo está mediado por tu cuerpo y este hecho es tan fundamental que a veces lo olvidamos completamente. Y los conceptos de programación son ideas abstractas que no viven aquí en el mundo corpóreo con nosotros. Son objetos imaginarios y funciones que existen en el espacio liminal que parece que no obedece las mismas leyes de la física que nosotros. Y sólo podemos interactuar con ellos a través de esta experiencia desencarnada de teclear caracteres de texto lineales en un editor de código. Esto es precisamente lo que hace que la programación sea tan difícil. Estamos tratando de razonar y trabajar con cosas que no podemos ver ni tocar cuando somos criaturas que están evolutivamente adaptadas para funcionar en un mundo altamente visual, espacial y físico..

2. Las Limitaciones del Texto en la Programación

Short description:

Y creo que los visuales son una gran parte de cerrar esa brecha entre nuestro mundo humano encarnado y el mundo de la máquina desencarnada en el que estamos tratando de programar. Vamos a explorar este tema a través de tres preguntas. Primero, ¿qué está mal con el texto? Todos nuestros lenguajes, herramientas y documentación de programación actuales son abrumadoramente centrados en el texto. Si miramos la historia de la programación, está bastante claro cómo terminamos en un mundo tan cargado de texto. También hay muchas razones lógicas por las que confiamos tanto en el texto en la programación. La naturaleza abstracta del texto es lo que lo aleja de nuestras experiencias encarnadas en el espacio y el tiempo.

Y creo que los visuales son una gran parte de cerrar esa brecha entre nuestro mundo humano encarnado y el mundo de la máquina desencarnada en el que estamos tratando de programar. Entonces, aquí está el plan. Vamos a explorar este tema a través de tres preguntas.

Primero vamos a preguntar qué está mal con el texto, luego exploraremos qué pueden hacer los visuales que el texto no puede hacer, y finalmente haremos un breve recorrido histórico para averiguar por qué ya hemos intentado esto? Después de todo, no hay ideas nuevas bajo el sol y muchas, muchas personas en el pasado han explorado formas de hacer la programación más visual. Vamos a ver qué se ha intentado ya y qué oportunidades aún quedan por delante.

Entonces, primero, ¿qué está mal con el texto? Esta es una pregunta importante que hacer porque todo lo que hacemos en la programación se expresa en texto. Cada aplicación en la que has trabajado se ve así, ¿verdad? Es texto dispuesto en líneas que van de izquierda a derecha y de arriba a abajo. Aquí está cada sitio web de documentation que has usado. Aquí está cada entrada de blog que has leído. Todos nuestros lenguajes, herramientas y documentation de programación actuales son abrumadoramente centrados en el texto. A veces te encuentras con diagramas aquí y allá, pero son realmente escasos. Si tuviera que adivinar el equilibrio entre texto y visuales en nuestra industria, apostaría a que estamos en un 98% de texto y un 2% de visuales. Esto no se basa en una encuesta oficial y no pude encontrar a nadie que haya hecho una encuesta oficial, así que esto se basa simplemente en mi experiencia personal en la community de web development. Pero si te tomas un minuto y piensas en todo el code y la documentation con los que interactúas a diario, apuesto a que vas a llegar a una estimación similar.

Si miramos la historia de la programación, está bastante claro cómo terminamos en un mundo tan cargado de texto. Este es un ordenador, circa 1970. Notarás la falta de pantalla. Tenías un teclado y un montón de tarjetas perforadas, y lo único que podías hacer era escribir texto lineal para crear programas. Esta restricción de design significaba que todos nuestros primeros lenguajes de programación eran basados en texto, y una vez que estableces el texto como el paradigma principal de un campo, se vuelve realmente difícil alejarse de él. Especialmente en una industria donde confiamos tanto en las abstracciones de nivel inferior creadas por todos los programadores que nos precedieron. También hay muchas razones lógicas por las que confiamos tanto en el texto en la programación. Las palabras escritas y la sintaxis son un medio ideal para expresar la lógica abstracta. Es rápido de crear, es flexible, y es fácil de mover entre aplicaciones a través de copiar y pegar sin preocuparse por la compatibilidad. Puedes empaquetar una gran cantidad de información en un espacio muy pequeño, y puedes ser muy específico sobre lo que quieres decir, lo cual obviamente importa cuando estamos hablando con ordenadores que no tienen sentido de la sutileza.

Hasta ahora, el texto ha funcionado muy bien para nosotros en la programación. Pero algunas de las mayores fortalezas del texto también son sus mayores debilidades. La naturaleza abstracta del texto es lo que lo aleja de nuestras experiencias encarnadas en el espacio y el tiempo. Cuando hacemos code, estamos escribiendo un conjunto de instrucciones hipotéticas para ejecutar en la máquina de otra persona en algún momento en el futuro en un tiempo y lugar que nunca conoceremos. Este nivel de abstracción elimina las cualidades físicas, espaciales y encarnadas que los humanos dependen para entender el mundo que nos rodea. Esto puede ser bueno en algunos aspectos, ¿verdad? Si queremos escribir una función como fetch user data, no tenemos que definir el tamaño, la forma, o el color de la misma.

3. Visualizando Conceptos de Programación

Short description:

Los visuales como cajas y flechas pueden ayudar a explicar conceptos de programación, como la función fetch user data, a los principiantes. Al utilizar cualidades físicas familiares, como el tamaño, la forma, el color y las relaciones espaciales, podemos hacer que la programación sea más comprensible y accesible. Estos visuales aprovechan nuestro conocimiento encarnado preexistente para demostrar cómo funcionan los programas, lo cual el texto lineal por sí solo no puede lograr.

Es solo una simple función flotando en la tierra de la máquina. Si ya sabes qué es esta función y cómo funciona y dónde está ubicada, este nivel de brevedad es genial. Pero imagina a alguien nuevo en la programación que nunca ha escrito una función para fetch user data y no tiene un modelo mental preexistente de cómo podría funcionar. Una de las formas más fáciles y efectivas de hacerlo comprensible para ellos es explicar en términos familiares utilizando cualidades físicas que ya entienden como el tamaño, la forma, el color y las relaciones espaciales. Lo cual podría darnos algo como esto para ayudar a explicar qué hace una función fetch user data. El visual no tiene que ser locamente complejo o hermoso. Las cajas y flechas funcionan muy bien. Ciertamente estamos permitidos a usar etiquetas de texto para hacer la imagen clara. Visuales como este nos permiten usar nuestro conocimiento encarnado preexistente para mostrar cómo funcionan los programas de una manera que el texto lineal no puede.

4. Visuales y Metáforas Cognitivas en la Programación

Short description:

Los visuales revelan tres aspectos de la programación que no podemos ver en el texto lineal: metáforas fundamentales, mapeos espaciales y comportamiento del programa a lo largo del tiempo. Las metáforas en la programación son metáforas cognitivas basadas en nuestras experiencias encarnadas del mundo. Usamos metáforas para entender y comunicar conceptos abstractos. El campo de la metáfora cognitiva y la cognición encarnada, desarrollado en la década de 1980 por George y Mark Johnson, explora este tema extensamente.

Así que acabo de empezar a insinuar la pregunta que vamos a examinar en la segunda parte, que es ¿qué pueden ofrecernos los visuales que no podemos obtener del texto lineal? Creo que los visuales revelan tres aspectos de la programación que no podemos ver en el texto lineal. Revelan metáforas fundamentales incrustadas en nuestros lenguajes de programación. Revelan mapeos espaciales que usamos para razonar sobre cómo están estructurados nuestros programas y cómo se mueven los data a través de ellos, y revelan cómo se comportan nuestros programas y data a lo largo del tiempo. Estas cosas están todas implícitas en los programas que escribimos pero no se muestran explícitamente en el medio del texto lineal. Así que comencemos con las metáforas. Solo para asegurarnos de que todos estamos en la misma página, establezcamos que las metáforas son herramientas de pensamiento que nos permiten entender una cosa en términos de otra. Así que digamos que tenemos la cosa A aquí, que entendemos, y la cosa B, que no entendemos. Mapeamos las cualidades de la cosa A sobre ella. Si decimos que la corrupción es una enfermedad, entendemos que la corrupción se propaga, es difícil de superar, y si se deja sin controlar, puede matar. De manera similar decimos que la vida es un viaje. Hay muchos caminos que nuestra vida podría tomar y varían en longitud y todos tienen un comienzo y un destino final. Cuando hablo de metáfora en el contexto de la programación, no me refiero a las metáforas creativas fantasiosas que encuentras en la poesía como tomar el camino menos transitado y vagar solitario como una cloud. Esas se llaman metáforas figurativas o poéticas y son el tipo que a menudo se nos advierte que no usemos en tutoriales técnicos ya que las metáforas elaboradas y mal elegidas pueden ser más confusas que útiles. Estoy hablando de un tipo de metáfora mucho más fundamental que está en el corazón de todo el pensamiento abstracto incluyendo la programación. Estas se llaman metáforas cognitivas ya que permiten la cognición en un nivel mucho más profundo. Estas metáforas cognitivas se basan en nuestras experiencias encarnadas del mundo. Tenemos todas estas cosas no físicas que necesitamos comunicar entre nosotros como emociones y pensamientos e ideas y programming concepts. Para entenderlos y hablar de ellos, usamos nuestra experiencia del mundo físico que nos rodea como una metáfora. Si observamos la forma en que hablamos de cosas abstractas, esto se vuelve obvio. Hablamos de ideas en términos de luz cuando decimos que es una idea realmente brillante o que realmente iluminó el problema. Hablamos de las emociones como si fueran objetos. Diremos, él escondió su celos o ella no maneja muy bien la ira. También podemos usar metáforas de fuerza y movimiento para describir experiencias. Podemos decir encontré tu charla conmovedora o tu charla realmente me tocó. Programación en términos de temperatura. Tenemos recarga en caliente en React o el panorama de JavaScript se está calentando. Esta no es una teoría que acabo de inventar. Estos principios provienen del campo de la metáfora cognitiva y la cognición encarnada. Fueron desarrollados por primera vez en la década de 1980 por George y Mark Johnson quienes han escrito numerosos libros sobre este tema y se ha convertido en un área importante de investigación en la ciencia cognitiva. Estos dos libros, Filosofía en la Carne y Metáforas que Vivimos son dos de los principales Pero no puedo profundizar demasiado en ello aquí.

5. Metáforas Físicas Encarnadas en la Programación

Short description:

La programación se basa en gran medida en metáforas físicas encarnadas para cerrar la brecha entre el mundo abstracto de la máquina y nuestro mundo humano tangible. Usamos metáforas y abstracciones para simplificar el complejo proceso de programación y hacerlo más accesible. Estas metáforas sirven como un puente entre las puertas lógicas del microchip y los lenguajes de nivel superior que utilizamos.

Así que, esperemos que puedas hacer un doctorado sobre ello. Y al igual que cualquier otro tema abstracto que no podemos ver ni tocar, la programación se basa en gran medida en estas metáforas físicas encarnadas y tenemos que hacerlo porque la programación en sí es un juego de abstracciones, ¿verdad? Escribimos un archivo JavaScript y lo que realmente estamos haciendo es decirle a un microchip que cambie un montón de puertas lógicas usando pequeños pulsos eléctricos. Esto es tedioso y difícil para los humanos, por lo que hemos desarrollado una pila de metáforas elaboradas que lo hacen más rápido y fácil. Algunas personas podrían preferir llamar a estas abstracciones, pero para los propósitos de esta charla, asumamos que las metáforas y las abstracciones son más o menos lo mismo y podemos debatir las diferencias en Twitter más tarde.

6. Metáforas Visuales en React

Short description:

Simplificamos nuestro código binario en código de máquina en lenguajes de nivel superior como JavaScript en GUIs. Los componentes en React son contenedores que contienen conjuntos de elementos de UI. En React, los componentes están estructurados en un árbol jerárquico, similar a un árbol genealógico, lo que permite una fácil interacción con las máquinas. Los medios visuales facilitan la representación y explicación de React aprovechando nuestro conocimiento preexistente del mundo físico. Los conceptos espaciales, como arriba, abajo, izquierda, derecha, dentro, fuera, grande, pequeño, se utilizan como metáforas para entender los programas y su estructura.

Simplificamos nuestro code binario en code de máquina que simplificamos en lenguajes de nivel superior como JavaScript que simplificamos en GUIs. Y en cada paso de este proceso, estamos tratando de hacer que el mundo abstracto de la máquina se parezca a nuestro mundo humano tangible. Porque cuanto más nos acercamos al conocimiento intuitivo encarnado en el lado superior derecho de la scale, más fácil se nos hace entender lo que está sucediendo en un sistema.

Los componentes en React son un gran ejemplo de estas metáforas encarnadas en acción. Entonces, los componentes son esencialmente containers, ya sabes. Contienen conjuntos de elementos de UI para nosotros. Así que un componente de tarjeta podría tener una imagen, un botón y un párrafo dentro de él. La CPU que va a renderizar este componente en la pantalla no sabe nada sobre containers. Solo conoce el code de máquina y cómo hacer que los píxeles correctos se iluminen. El contenedor es una metáfora que necesitamos los humanos para gestionar y organizar el code que escribimos. La única razón por la que sabes lo que es un contenedor es porque cuando eras niño, vertiste arena en un cubo y la volviste a sacar. Y a través de este mundo físico, donde estás haciendo experiencia y aprendizaje encarnados, containers contienen cosas. Tienen interiores y exteriores. Tienen límites. Todos estos conceptos son esenciales y necesarios para que entiendas cómo funcionan los componentes en React. Así que tomemos otro. En React, estructuramos nuestros componentes en un árbol jerárquico donde todo está conectado de vuelta a un único componente raíz. Sabes lo que es un árbol por haber visto miles de árboles, y entiendes que tienen muchas ramas que se extienden desde una única raíz, una comprensión que te permite trabajar con árboles de componentes en React. La metáfora del árbol también es una especie de doble metáfora ya que se basa en la idea de un árbol genealógico. Tenemos componentes padres e hijos que heredan props de la misma manera que los niños heredan cualidades de sus padres, y estos conceptos que estamos tomando prestados del mundo humano nos permiten interactuar con las máquinas de una manera que es fácil y natural para nosotros. Y probablemente puedes ver a dónde voy con esto. Dado que tu comprensión de React se basa en tu conocimiento preexistente del mundo físico que te rodea, sería útil si pudiéramos hacerlo explícito en la forma en que representas y explicas React. Y los medios visuales nos permiten hacer esto. Ciertamente puedes leer sobre las estructuras de componentes de React y la transmisión de props, y luego formar una imagen mental en tu mente basada en tu comprensión de los árboles físicos y la herencia familiar, y luego aplicar ese conocimiento a la escritura de code lineal, todo sin verlo nunca explícitamente visualizado. Pero eso se llama hacerlo más difícil de lo que tiene que ser. Así que pasemos a la siguiente cualidad visual, el espacio. Como humanos con cuerpos, entendemos inherentemente una gran cantidad de conceptos espaciales como arriba, abajo, izquierda, derecha, dentro, fuera, grande, pequeño, y usamos metáforas al igual que usamos conceptos físicos para entender los programas. También usamos conceptos espaciales para hablar de la estructura y el comportamiento de los programas. Si piensas en la forma en que hablamos de internet, hay direcciones físicas muy claras para ello.

7. Principios Espaciales y Cambio a lo Largo del Tiempo

Short description:

Usamos principios espaciales de nuestra experiencia encarnada del mundo para hablar y entender React. Los visuales podrían ser útiles porque nos permiten ver múltiples puntos en el tiempo dentro de un solo marco. Veamos la sintaxis del hook use effect como un ejemplo de esto. Aquí hay cuatro versiones diferentes del hook use effect que se comportarán de manera diferente cuando se ejecuten en el navegador.

Subimos data a la cloud sobre nosotros y descargamos archivos a nuestros escritorios. Miramos a través de una ventana del navegador. Navegamos por las páginas web moviéndonos de izquierda a derecha. Por lo tanto, las páginas que visitaste en el pasado están a la izquierda y las páginas a las que vas en el futuro están a la derecha. Este formato se basa en nuestra cartografía cultural occidental del tiempo al espacio. Pensamos que el pasado está a la izquierda y el futuro a la derecha, pero no todas las culturas hacen eso.

Específicamente en React, usamos nuestra comprensión de las direcciones verticales para pensar en cómo se mueven los data. React tiene un orden jerárquico de dos componentes y los componentes padres están por encima de los hijos y pasan data hacia abajo, lo que significa que tenemos gravedad en la tierra de React. La idea de la perforación de propiedades es otra que sugiere perforar hacia abajo, por lo que tienes que pasar data profundamente en tu árbol, por lo que también tiene profundidad. Cuando hablamos de efectos secundarios, estamos usando nuestra comprensión de que hay un centro y una periferia donde las cosas suceden al margen, por lo que cuando ejecutamos una función como un set timeout dentro de un hook use effect, entendemos que está accediendo a algo fuera de nuestro componente central. Podría seguir. Nuestras aplicaciones tienen frontends y backends, fusionas objetos, captas la idea aquí. Usamos principios espaciales de nuestra experiencia encarnada del mundo para hablar y entender React. Cuando creamos visuales que muestran estos principios espaciales explícitamente, aclara lo que ya estamos haciendo en nuestras cabezas.

Nuestro elemento final aquí es el cambio a lo largo del tiempo. Cuando trabajamos en un editor de texto lineal, el tiempo es esencialmente invisible. Estamos mirando una representación estática que describe una serie completa de eventos futuros que pueden o no suceder dependiendo de qué botón haga clic un usuario o si nuestra solicitud de data se resuelve. Nos vemos obligados a usar nuestra imaginación para predecir lo que va a suceder en todos esos potenciales futuros, en lugar de poder verlo de alguna forma. Nuestra mejor técnica actual para tratar de ver cómo cambian las cosas con el tiempo es el registro de console data en el camino. El registro de console se siente como tratar de hacer que un programa envíe señales a la superficie de un oscuro océano donde todo se está ejecutando fuera de la vista. No podemos ver nada sucediendo allí abajo y tenemos que seguir pidiendo clues sobre cómo está cambiando la data, lo que no parece la mejor developer experience. Aquí es donde los visuales podrían ser útiles nuevamente porque nos permiten ver múltiples puntos en el tiempo dentro de un solo marco. Nos permiten comparar cosas lado a lado de una manera que no podemos con el texto lineal. Básicamente nos permiten jugar a encontrar las diferencias. Veamos la sintaxis del hook use effect como un ejemplo de esto. Aquí hay cuatro versiones diferentes del hook use effect que se comportarán de manera diferente cuando se ejecuten en el navegador. El primero no tiene matriz de dependencia. El segundo tiene una vacía. El tercero tiene el valor count como una dependencia, y el cuarto también tiene count como una dependencia y ejecuta una función de limpieza. Solo mirando estas cuatro versiones de sintaxis, ¿tienes alguna forma de saber cómo se va a ejecutar esta función una vez que se cargue en el navegador? Específicamente, ¿sabes con qué frecuencia se va a llamar y cuándo? Dada la demografía de esta audiencia, apuesto a que sí.

8. Visualizando el Comportamiento del Hook use effect

Short description:

Para entender mejor cómo se comporta el hook use effect con el tiempo, he creado diagramas visuales que demuestran las diferencias de comportamiento en función de diferentes escenarios. Al representar visualmente los cambios a lo largo del tiempo, podemos obtener una comprensión más profunda de cómo funciona el hook use effect.

Es porque has memorizado el significado sintáctico aquí en lugar de saber porque la respuesta es visible en nuestra sintaxis. Lo que necesitamos hacer aquí es comparar cuatro cosas que se comportan de manera diferente con el tiempo. La mejor manera de hacer eso es mostrar visualmente qué cambia con el tiempo. He hecho un conjunto simple de diagramas que intentan mostrar la diferencia entre estos cuatro en una línea de tiempo. Aquí está nuestra primera versión sin dependencia en la RRA. La función use effect se llama en cada renderizado, independientemente de si nuestra variable count se actualiza o no. Aquí está nuestra segunda versión donde el array de dependencia está vacío, por lo que la función de efecto de usuario solo se llama en el renderizado inicial, y todavía no nos importa lo que la variable count esté haciendo. En nuestra tercera versión, con count en el array de dependencia, use effect se llama solo cuando count se actualiza, lo que provoca un nuevo renderizado. En nuestra versión final, use effect se llama en las actualizaciones de count y ejecuta una función de limpieza después. Incluso si quitamos las etiquetas en estos, esta simple representación visual de cómo use effect se comporta con el tiempo nos da una comprensión mucho mejor de cómo funciona que la sintaxis lineal es capaz de hacerlo.

9. Explorando la Programación Visual

Short description:

La programación visual se ha explorado en el pasado incorporando interfaces gráficas de usuario en los IDEs. Sin embargo, estos intentos han enfrentado desafíos de diseño y escepticismo. La programación visual sigue siendo relativamente de nicho, pero el movimiento de no código y bajo código muestra promesa. En lugar de construir lenguajes de programación visual, el enfoque ha cambiado hacia el desarrollo de interfaces visuales para casos de uso específicos en programación. Aunque construir un verdadero medio de programación visual es un desafío, hay formas más fáciles de avanzar en este esfuerzo a corto plazo.

Entonces, parte tres, ¿no lo hemos intentado ya? Obviamente, no soy la primera persona en darse cuenta de que los medios visuales nos permiten entender y razonar de formas que vale la pena explorar en la programación. La forma principal en que las personas han intentado incorporar elementos visuales en la programación en el pasado es pegando interfaces gráficas de usuario en los IDEs. Estos esfuerzos caen bajo el paraguas de lo que se llama programación visual.

Ha habido muchos, muchos intentos pasados en esto con grados variables de éxito. Voy a repasar rápidamente algunos ejemplos para que tengas una idea de lo que ya se ha intentado. El primer lenguaje de programación visual fue el Sketchpad de Ivan Sutherland en 1963. Este es Grail de 1968 donde pusimos texto en cajas por primera vez. Este es Pygmalion de 1975 que se basó en ese modelo de caja y flecha. Este es LabVIEW que salió en 1986 y se usa para ingeniería de sistemas y nos volvimos mucho más intensos acerca de las cajas en esta etapa. Aquí hay un ejemplo más moderno. Este es Blueprint en Unreal Engine, que se utiliza para el desarrollo de juegos 3D. Este es Max MSP, que se utiliza ampliamente para construir experiencias audiovisuales. Aquí está Touch Designer, también para multimedia interactiva. Este es Origami Studio, una herramienta de prototipado construida por Facebook. Notarás que el patrón de diseño de nodos y cables es muy popular en muchos de estos.

Entonces, hay muchas cosas prometedoras en estos ejemplos, pero la programación visual sigue siendo relativamente de nicho. También hemos descubierto un montón de desafíos de diseño realmente difíciles de resolver. Estos sistemas no escalan bien, a veces usan símbolos ambiguos y patrones de interfaz desconocidos. Intentan convertir todo en una caja, lo que ocupa demasiado espacio en la pantalla. Puede llevar a un código literalmente espagueti. Este es un prototipo de Figma que salió muy mal. Estos problemas han llevado a mucho escepticismo sobre la viabilidad de la programación visual. Ser un defensor de ella a menudo se siente como ser Gretchen en Mean Girls. La programación visual ciertamente no está muerta, sin embargo. Curiosamente, el nuevo movimiento de no código y bajo código parece programación visual bajo un nuevo nombre. Muchos de los patrones de interfaz que ayuda a desarrollar la programación visual son visibles en herramientas como IntegroMet y Zapier y Webflow. Pero en lugar de intentar construir lenguajes de programación visual que puedan alcanzar escalas industriales, hemos pasado tácticamente a desarrollar interfaces visuales para casos de uso específicos en programación con restricciones sensatas. Soy un gran fan de la agenda de programación visual y encontrar formas de agregar más posibilidades visuales en las herramientas actuales de desarrollo y hay muchas personas inteligentes e impresionantes trabajando en el problema, pero en muchos aspectos, está tomando el camino difícil. Construir un verdadero medio de programación visual requerirá superar un montón de desafíos de diseño y cultura e ingeniería y, francamente, va a llevar un tiempo.

10. Avanzando en los Esfuerzos de Programación Visual

Short description:

Podemos esparcir visuales en nuestro mundo textual existente agregando diagramas, ilustraciones y plugins. Se necesitan más visuales para revelar metáforas, significado espacial y cambio a lo largo del tiempo en la programación. Los desarrolladores deben aprender de la historia de la programación visual, incorporar posibilidades visuales en sus herramientas y utilizar explicaciones y documentación visual. Consulta a George Laycoff, Mark Johnson, Barbara Javersky, Brett Victor, futureofcoding.org y el libro Visual Explanations de Edward Tufte para obtener más información.

Pero hay formas más fáciles de avanzar en este esfuerzo a corto plazo. Simplemente podemos esparcir algunos visuales en nuestro mundo textual existente, lo que significa agregar más diagramas e ilustraciones en publicaciones de blog, documentation y materiales de aprendizaje y si nos sentimos valientes, construyendo plugins para nuestros editores y herramientas de desarrollo que visualicen elementos muy pequeños de nuestros programas. Esta es esencialmente la versión de prototipo de papel de bajo tecnología de la construcción de una interfaz de programación visual completamente desarrollada.

Entonces, para concluir, aquí está lo que quiero que te lleves de esta charla. Necesitamos más visuales que revelen metáforas, significado espacial y cambio a lo largo del tiempo para hacer la programación más fácil para todos. Te facilitará a ti, ya que eres un humano encarnado que necesita aprender conceptos abstractos de programming concepts para hacer bien tu trabajo. Facilitará a todas las personas que actualmente no saben cómo programar pero están tratando de aprender y facilita a las personas que no son desarrolladores pero necesitan entender lo que hacemos, como los gerentes de producto y diseñadores que no pueden leer todo el argot en nuestra documentation pesada en texto.

Entonces, ¿qué debe hacer un desarrollador? Estoy seguro de que eres un humilde pero hábil desarrollador de React y quieres ayudar a avanzar en este objetivo. Primero, sugiero encarecidamente que investigues la historia de la programación visual y algunos de los pasados intentos en este campo. Hay mucho buen arte previo del que aprender. Si eres un creador actual o futuro de herramientas para otros desarrolladores, deberías considerar formas de incorporar posibilidades visuales en tus bibliotecas, plugins, aplicaciones o frameworks. Y finalmente, deberías usar y abogar por explicaciones visuales y documentation y tutoriales. Eso podría significar hacerlos para tus propias publicaciones de blog o colaborar con diseñadores si trabajas en proyectos más grandes con mucha documentation. Así que podemos poner el listón bajo por ahora. Estamos tratando de mover esta estadística falsa hasta, digamos, el diez por ciento. Así que eso fue mucha información empaquetada en una charla. Definitivamente esto fue más una degustación que una comida completa, así que he reunido una lista de algunas cosas que puedes buscar en Google para aprender más sobre este tema. Estos estarán en mi sitio web. George Laycoff y Mark Johnson son los que trabajaron en metáforas cognitivas. El trabajo de Barbara Javersky sobre cognición encarnada es genial. Literalmente todo lo que Brett Victor ha hecho vale la pena tu tiempo. Y hay algunos recursos realmente geniales en futureofcoding.org, son algo así como una community de entusiastas de la programación visual. Y el libro Visual Explanations de Edward Tufte es realmente genial para obtener advice. Así que muchas gracias por escuchar. Publicaré estos en mi sitio web, maggieappleton.com, donde tengo más escritos sobre metáforas y programación visual y ese tipo de cosas. Y puedes enviarme un tweet a @mappletons. Increíble. Gracias, Maggie. Por favor, ven y únete a mí en la oficina. Eso fue realmente increíble.

11. Llegando a las Metáforas Visuales

Short description:

Al llegar a una metáfora visual, razono verbalmente a través de ella y confío en la lingüística para analizar el lenguaje utilizado en torno al concepto. Presto atención a las palabras físicas utilizadas en la documentación, como mover, pasar y términos espaciales, para diseñar la metáfora.

Y la gente tiene muchas preguntas. Así que vamos directo al grano. L, la letra, pregunta ¿cómo llegas a una metáfora visual? ¿Es algo que forms inconscientemente mientras te relacionas con el concepto? ¿O razonas verbalmente a través de ello? Definitivamente razono verbalmente a través de ello e investigo. Así que confío mucho en la lingüística y en el tipo de técnicas que los lingüistas utilizan para analizar el lenguaje que usamos en torno a las cosas. Así que cuando estoy tratando de design una metáfora para una cierta tecnología, leo los docs y realmente presto atención a las palabras que están usando. Y casi siempre están usando palabras físicas. Están moviendo, pasando, ya sabes, cosas espaciales. Están hablando de cómo las cosas están dispuestas en el espacio aunque sólo estén escribiendo en texto lineal. Pero presto mucha atención al lenguaje.

12. Pegatinas, Colaboración, Herramientas y Metáforas

Short description:

Hay interés en pegatinas y merchandising, pero no tengo una tienda. La colaboración con el equipo de documentación de React está en progreso. Para una exploración más profunda, visita mi sitio web. Utilizo un iPad con Procreate para las ilustraciones. Las metáforas pueden ser interpretadas de manera diferente por diferentes culturas, pero en la comunidad de desarrollo web, tenemos una comprensión compartida.

Hay más de una pregunta preguntando si tienes pegatinas o merchandising de tus ilustraciones. ¡La gente necesita más Maggie! No vendo nada personalmente. Egghead tiene un sitio de merchandising donde venden algunas de las pegatinas de ilustración del curso. Pero también tendemos a regalarlas gratis cuando aparecemos en conferencias. Pero no tengo una tienda de merchandising organizada. Lo siento.

Y de manera similar, de nuevo, la gente realmente está interesada. ¿Hay alguna posibilidad de una colaboración con el nuevo equipo de documentación beta de React? Creo que estoy autorizada para decir. Podría tener algunas visuales en la nueva documentación de React. Increíble. Están en progreso.

Uh, sí. Lo sé, ¿verdad? ¿Qué recursos recomendarías para alguien que quiere explorar estos conceptos más a fondo? Sé que mencionaste un par. ¿Pero hay algo más que te gustaría añadir? Creo que lo mejor es quizás ir a mi sitio web donde tengo esa lista en la sección de programación de imágenes. Añadiré más allí. Porque tengo una lista larga. Pero llevaría un tiempo leerlas todas.

Un par de personas están interesadas en las herramientas. ¿Qué usas para dibujar, para añadir tus ilustraciones a la presentación, etc.? Todas las ilustraciones que dibujo hoy en día son en un iPad con Procreate. Solía dibujar más en Photoshop en un Cintiq. Para ser honesta, son casi intercambiables y el iPad es simplemente mejor. Hemos tenido avances mucho mejores en hardware y software en los últimos cinco años que el iPad es una especie de estado del arte.

Esta es una interesante. ¿Crees que ... Estoy seguro de que hay. ¿Existe potencialmente un problema de que las metáforas sean interpretadas de manera diferente por diferentes países y culturas y cómo pensamos en eso? Definitivamente hay en que las metáforas son increíblemente culturales. Casi todas las metáforas que usamos están delimitadas al país en el que estamos y el idioma que estamos hablando. Dado el hecho de que React y la comunidad de desarrollo web es un lugar bastante unificado y todos tenemos una comprensión bastante compartida de metáforas y símbolos. Encuentro que no es tan difícil encontrar metáforas que se relacionen con todos. Aunque, siempre estoy consciente de que si alguien en otro país que no tiene muchas de las mismas asociaciones que nosotros lo ve, hay una buena posibilidad de que puedan perder matices de ello.

13. Aprovechando las metáforas existentes en la programación

Short description:

¿Deberíamos aprovechar las metáforas existentes en los lenguajes de programación y los marcos? El diseño de los lenguajes de programación incorpora metáforas que se consideran apropiadas. Cuando no hay una metáfora clara, se hace necesario inventar una.

Eso es algo que debes considerar caso por caso. Necesitaremos Maggies en todos los países y en todas las zonas horarias, por si acaso. ¿Deberíamos, crees tú, estar aprovechando las metáforas existentes que ya están en nuestros lenguajes de programación y frameworks? ¿O intentar optimizar para aquellas que quizás comunican algo bien? Esa es una buena pregunta. Casi se convierte en una pregunta de diseño de lenguaje de programación. Me gusta suponer que las personas que diseñaron el lenguaje de programación pensaron lo suficiente en abstracciones y en el lenguaje de la API que las metáforas que han elegido, ya sea consciente o inconscientemente, son las correctas. No intento inventar nuevas de la nada si estoy tratando de dibujar algo que realmente pretende explicar el punto. Pero a veces, si no parece que haya una metáfora clara, es cuando te metes en la invención de una que se ajuste a las necesidades. Sí. Eso es realmente genial. Hay un par aquí que son personas que quieren saber un poco más sobre ti y tu proceso. ¿Empezaste a programar y luego te metiste en el diseño, o viceversa? ¿Cuál es un poco más tu proceso para convertir los conceptos de programación en? Mencionaste leer un poco la documentación. ¿Hay algo más que haces? La documentación y luego hago cosas como navegar por Reddit y Twitter y simplemente busco el lenguaje que la gente común usa alrededor de lo que sea la tecnología, si eso responde la pregunta. ¿Y cuál vino primero? Más o menos ambos al mismo tiempo. Empecé a jugar con HTML cuando tenía 12 años y había mucho deseo de hacer cosas bonitas en la web fue el impulso allí. Así que siempre he hecho ambos y he pasado por diferentes períodos de intensidad para cada uno. Creo que cuando empecé a aprender React hace seis años, me metí mucho más en la programación durante unos años y estaba principalmente diseñado antes de eso. Pero siempre he ido y venido. ¿Haces... esto es solo yo pensando, haces muchos dibujos en papel y lápiz alguna vez? Sí. Como, casi todos mis dibujos comienzan en notas adhesivas con un lápiz, y el iPad es realmente solo el paso final, pero hay muchos bocetos en el medio donde estoy simplemente averiguando cosas, y la versión final pulida casi nunca es la que lleva tiempo o el mayor esfuerzo. ¿Alguna vez encuentras un dibujo y no recuerdas para qué era? ¿Hago qué? ¿Encuentras un dibujo y no recuerdas para qué era? Oh, sí. No, sí. Miro hacia atrás, como, de la misma manera que encuentras notas de hace 10 años y dices, no entiendo ni siquiera qué se suponía que debía ser esto. Tenemos tiempo para una más. Drew pregunta, ¡ayuda! Soy terrible en el diseño y el dibujo. ¿Qué puedo hacer? Ooh. Tengo en mi sitio web, una lista completa de todos mis cursos y libros favoritos y enlaces y cosas que tratan sobre las tecnicidades de cómo dibujas bien un círculo, cómo haces que una cara humana parezca una cara humana? Ese tipo de contenido de dibujo técnico, eso, sí. Los recursos en mi sitio web serán un buen recurso para ti. Muchas gracias, Maggie, por tu tiempo. Encuentra a Maggie en internet. Claramente grandes recursos allí. Un gran agradecimiento a Maggie, por favor.

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 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Uso efectivo de useEffect
React Advanced 2022React Advanced 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
React 18's concurrent rendering, specifically the useTransition hook, optimizes app performance by allowing non-urgent updates to be processed without freezing the UI. However, there are drawbacks such as longer processing time for non-urgent updates and increased CPU usage. The useTransition hook works similarly to throttling or bouncing, making it useful for addressing performance issues caused by multiple small components. Libraries like React Query may require the use of alternative APIs to handle urgent and non-urgent updates effectively.

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 Workshop
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 🤐)
Next.js para Desarrolladores de React.js
React Day Berlin 2023React Day Berlin 2023
157 min
Next.js para Desarrolladores de React.js
Top Content
Featured WorkshopFree
Adrian Hajdin
Adrian Hajdin
En esta avanzada masterclass de Next.js, profundizaremos en conceptos clave y técnicas que permiten a los desarrolladores de React.js aprovechar al máximo Next.js. Exploraremos temas avanzados y prácticas prácticas, equipándote con las habilidades necesarias para construir aplicaciones web de alto rendimiento y tomar decisiones arquitectónicas informadas.
Al final de esta masterclass, serás capaz de:1. Comprender los beneficios de los Componentes del Servidor React y su papel en la construcción de aplicaciones React interactivas, renderizadas por el servidor.2. Diferenciar entre el tiempo de ejecución de Edge y Node.js en Next.js y saber cuándo usar cada uno en función de los requisitos de tu proyecto.3. Explorar técnicas avanzadas de Renderizado del Lado del Servidor (SSR), incluyendo streaming, fetching paralelo vs. secuencial, y sincronización de datos.4. Implementar estrategias de caché para mejorar el rendimiento y reducir la carga del servidor en las aplicaciones Next.js.5. Utilizar Acciones React para manejar la mutación compleja del servidor.6. Optimizar tus aplicaciones Next.js para SEO, compartir en redes sociales, y rendimiento general para mejorar la descubrabilidad y la participación del usuario.
Aventuras de Renderizado Concurrente en React 18
React Advanced 2021React Advanced 2021
132 min
Aventuras de Renderizado Concurrente en React 18
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
Con el lanzamiento de React 18 finalmente obtenemos el tan esperado renderizado concurrente. Pero, ¿cómo va a afectar eso a tu aplicación? ¿Cuáles son los beneficios del renderizado concurrente en React? ¿Qué necesitas hacer para cambiar al renderizado concurrente cuando actualices a React 18? ¿Y qué pasa si no quieres o no puedes usar el renderizado concurrente todavía?

¡Hay algunos cambios de comportamiento de los que debes estar al tanto! En esta masterclass cubriremos todos esos temas y más.

Acompáñame con tu portátil en esta masterclass interactiva. Verás lo fácil que es cambiar al renderizado concurrente en tu aplicación React. Aprenderás todo sobre el renderizado concurrente, SuspenseList, la API startTransition y más.
Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
Presentando FlashList: Construyamos juntos una lista performante en React Native
React Advanced 2022React Advanced 2022
81 min
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
Featured Workshop
David Cortés Fulla
Marek Fořt
Talha Naqvi
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
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.