La Fuente Legendaria de la Verdad: Componentiza tu Documentación!

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

"En el Espacio, Nadie Puede Oírte Gritar." Lo mismo ocurre con tu proyecto súper-nuevo-revolucionario: la Documentación es la clave para que la gente hable de él.

Crear una documentación bien ajustada puede ser complicado. Mantenerla actualizada cada vez que lanzas una nueva función debe ser una parte desafiante de tu aventura. Hemos intentado muchas cosas para evitar la brecha entre la documentación y el código: documentación generada por código, ejemplos en vivo al estilo de Storybook, REPL...

Es hora de una nueva era de documentación donde el contenido orientado a las personas conviva con ejemplos de código: esta charla te guiará desde las Mejores Prácticas de Documentación - cubiertas por años de documentación colaborativa de FOSS - hasta el nuevo y elegante mundo de los Componentes en Markdown: MDX, MDJS, MD Vite, y todo eso.

¡Construyamos una documentación brillante para personas brillantes!

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

FAQ

La documentación es crucial para el éxito de cualquier proyecto, ya que sin ella, nadie entenderá cómo funciona ni cómo se debe utilizar el proyecto o sus componentes.

La desincronización ocurre cuando la documentación no refleja con precisión el código actual. Para evitarlo, es fundamental mantener sincronizados el código y la documentación.

El marco de datos Axis es un sistema de documentación dividido en cuatro partes: READMES, O2s, FAQs y páginas principales, cada una enfocada en diferentes aspectos del proyecto para facilitar la comprensión y el uso de la documentación.

MDX permite incorporar JSX en Markdown, facilitando la incorporación de componentes dinámicos y props en la documentación, lo que mejora la interactividad y la precisión de los documentos.

El desarrollo impulsado por componentes permite un desarrollo más rápido, un mantenimiento más sencillo y una mejor reutilización de los componentes, además de facilitar la prueba y documentación de componentes de forma aislada.

Backlight es una herramienta de edición para sistemas de diseño centrados en componentes, que permite integrar código, pruebas, historias y documentación directamente dentro de cada componente.

m4dz
m4dz
24 min
25 Oct, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Bienvenido a esta sesión sobre documentación en una era impulsada por comandos. El marco de trabajo Data Axis proporciona un enfoque integral para la documentación, cubriendo diferentes áreas del proceso de desarrollo. El desarrollo impulsado por componentes y la sintaxis MDX permiten un desarrollo más rápido, un mantenimiento más sencillo y una mejor reutilización. La incorporación de componentes en Markdown utilizando MDX permite una creación de documentación más avanzada y útil. Se recomiendan herramientas como Storybook y Duxy con soporte MDX para soluciones de documentación. La incorporación de documentación directamente dentro de los componentes y la migración a MDX ofrecen una experiencia de documentación integral y abren nuevas posibilidades para la incorporación y mejora de la documentación.

1. Documentación en una Era Dirigida por Comandos

Short description:

Bienvenidos a esta sesión sobre documentación en una era dirigida por comandos. Tu documentación es la clave del éxito de tu proyecto. Mantén tu documentación asociada con tu código para evitar desincronización. Necesitamos una única fuente de verdad, que es tu base de código. Mantén la documentación sincronizada con la base de código e incrusta tu base de código en tu documentación.

¡Hola a todos! ¡Qué bueno tenerlos aquí! Bienvenidos a esta sesión sobre documentación en una era dirigida por comandos. Así que vamos a hablar sobre la documentación como clave del éxito de tu proyecto. Quiero decir, sin importar si estás trabajando en una biblioteca, un componente individual, un sistema de diseño completo o una interfaz final de una aplicación, tu documentación es la clave del éxito de tu proyecto. Porque sin una documentación adecuada, nadie tendrá ni idea de cómo funciona y cómo se supone que debes usar tu proyecto o cualquier parte de tu proyecto. Así que debes mantener tu documentación correctamente asociada con tu código. De hecho, tener una documentación viva es un dolor hoy en día, simplemente porque si tienes que duplicar tu código de tu base de código a tu documentación, obviamente lleva a una desincronización en algún punto de tu documentación en comparación con tu base de código. Así que debes mantenerlos sincronizados si quieres estar listo para simplemente usar y mantener tu documentación a lo largo del tiempo, para tener tu proyecto listo para ser utilizado por cualquier persona en el pasado y en el futuro. Así que hemos intentado muchas cosas para mantener las cosas organizadas entre tu documentación y tu base de código. Hemos intentado cosas como storybook, hemos intentado cosas como incrustar, erpl en tu documentación en sí misma, hemos intentado muchas cosas pero la verdad real es que necesitamos una única fuente de verdad y esta única fuente es tu base de código en sí misma. No tu documentación, no tus ejemplos que estarán desactualizados en algún momento. Necesitas algo que sea definitivamente el único punto donde todo se origina y esto está directamente en tu base de código. Así que tenemos que hacer algo para mantener la documentación sincronizada con la base de código.

2. El Marco de Datos Axis

Short description:

Este es un marco de documentación que muchas empresas están utilizando en este momento. Está orientado en cuatro partes: READMES, O2s, FAQs y páginas principales. Los READMES sirven como punto de entrada para los usuarios, proporcionando guías de inicio. Los O2s son guías o recetas para trabajar con partes específicas del proyecto. Las FAQs contienen discusiones e historias, ayudando a comprender las elecciones e interacciones del proyecto. Las páginas principales proporcionan contenido técnico avanzado. Estas cuatro partes cubren diferentes áreas del proceso de desarrollo.

y necesitamos algo para incrustar tu base de código en tu nivel de documentación. Así que solo un recordatorio sobre el marco de datos Axis. Este es un marco de documentación que muchas empresas están utilizando en este momento. Este marco de documentación está orientado en cuatro partes. Todas estas cuatro partes son las partes dedicadas a tu documentación y todo lo que tienes que hacer es dividir diferentes elementos de tu documentación en la misma área. Así que la primera entrada son los READMES. Los READMES son el punto de entrada de tu documentación. Cuando un usuario llega a tu nueva documentación y no tiene ninguna idea de por dónde empezar, los READMES son el punto de entrada correcto. Son algo así como guías de inicio donde puedes seguir siempre el mismo camino y los mismos pasos en tu proceso de desarrollo y obtendrás el mismo resultado. Esta es una forma muy buena de involucrarte en tu proyecto. La segunda parte son los O2s. Los O2s son más guías o recetas y están dedicados a cómo quieres trabajar con esta parte del proyecto o cómo puedo incrustar mi proyecto en una aplicación React, cómo puedo usar mi biblioteca con este tipo de back-end, y así sucesivamente. Las guías presuponen que tienes una configuración preestablecida y en esta configuración particular hay guías, hay diferentes recetas sobre cómo podrías usar tu proyecto en diferentes aspectos del desarrollo. La tercera parte son las FAQs. En ellas tienes todas las discusiones, todas las historias, por qué se eligió este proyecto, este uso particular de esta herramienta, o esta configuración, y así sucesivamente. Aquí es donde vive toda la historia del proyecto y ayuda a comprender por qué elegimos esta configuración en particular en algún momento y ayuda a comprender cómo todo interactúa entre sí. Luego, las partes finales son las páginas principales en la era de Unix o más específicamente documentación avanzada sobre una parte dedicada, cómo funciona este componente, cómo se utiliza esta biblioteca en algún punto del proyecto. Esta es una guía completa de contenido técnico profundo. Estas cuatro partes están vinculadas a cuatro áreas diferentes. Los Readmes y los O2s son los puntos de práctica. Cada vez que te preguntas, `OK, estoy trabajando en una nueva parte de la documentación y quiero agregar nuevo contenido, ¿a qué tema está relacionado?` Si está relacionado con prácticas, entonces este es el punto correcto para echar un vistazo. Entonces, ¿es algo como un punto de entrada, como una guía de inicio, o es una guía dedicada a diferentes accesos en el área específica de partes específicas del proceso de desarrollo? Entonces, los Readmes y los Hotos, esto es práctica, donde los paquetes y las páginas principales están más dedicados a comprender el proyecto y las bases del proyecto. Pero los Readmes y las FAQs también son partes de aprendizaje, donde aprendes cómo funciona y por qué funciona de esta manera. Donde los Hotos están más dedicados a... Y las páginas principales están más dedicadas a cuando quiero usar el proyecto, ¿en qué parte debo prestar atención? ¿Es en los Hotos? ¿Es en las páginas principales? Estoy buscando contenido técnico detallado, o estoy buscando una guía dedicada sobre este tema en particular, porque esto es lo que estoy buscando en este momento. Entonces, cuando tienes este marco en mente, estás trabajando en una documentación bien adaptada para cualquier tipo de proyecto. Así que te recomiendo que prestes atención al marco de datos Axis, si aún no lo conoces, y trates de ajustar tu documentación a él, porque esto es algo realmente, realmente útil en tu trabajo diario.

3. Desarrollo impulsado por componentes y sintaxis MDX

Short description:

El desarrollo impulsado por componentes permite un desarrollo más rápido, un mantenimiento más sencillo, una mejor reutilización y una mejor TDD. Al aislar los componentes en un entorno de prueba, se pueden mantener, probar y documentar fácilmente. El marco de datos Axis permite organizar la documentación en torno a componentes específicos, facilitando la comprensión de su funcionalidad y uso. MDX, una sintaxis que combina Markdown y JSX, permite crear documentación más avanzada y útil.

Pero ahora estamos trabajando en un área de desarrollo impulsado por componentes. Entonces, en este entorno, estoy trabajando en componentes más que en cualquier otra parte. Y así, este desarrollo impulsado por componentes nos brinda una nueva forma de desarrollar y pensar en nuestra aplicación, porque implica un desarrollo más rápido, un mantenimiento más sencillo, una mejor reutilización, una mejor TDD, porque cada parte de tu aplicación se separa en partes pequeñas, en componentes pequeños.

Y cuando divides toda tu interfaz frontend en componentes solamente, entonces puedes trabajar en partes pequeñas que están aisladas en tu aplicación. Y puedes extraer tu contenido y hacerlo funcionar de forma aislada en un entorno de prueba. Y en este entorno de prueba, tu componente se puede mantener, probar y documentar fácilmente. Y esta es la parte que estamos buscando en este momento. Entonces, en este marco de datos Axis, con una era de desarrollo impulsada por componentes, ¿cómo podemos combinarlos para aprovechar al máximo los dos mundos? Esto es realmente interesante, porque cuando trabajas de esta manera, es muy fácil extraer tu componente de tu aplicación y ponerlo en un entorno de prueba dedicado, trabajar en él, realizar algunas pruebas, utilizar este nuevo componente en vivo y tenerlo disponible para incrustarlo en diferentes partes, diferentes áreas de tu documentación. Así que tu documentación ahora puede ser completamente exhaustiva sobre cómo funciona de esta manera, cómo es este componente realmente útil, cómo podemos confiar realmente en este componente en este contexto particular, y así sucesivamente.

Entonces, en mi marco de datos Axis, poner algunas cosas dedicadas a mi componente en las guías o los README y los O2s, etc., es realmente muy útil porque ahora es fácil entender dónde puedo poner mi documentación para estas partes particulares de mis aplicaciones, que son este componente, mi menú desplegable, mi vista de galería, mi héroe, mi botón. Esto es exactamente cómo quiero realizar mi documentación, porque cuando busco una nueva documentación en un proyecto, lo que busco es: OK, ¿cuáles son los diferentes componentes disponibles en mi biblioteca, cómo puedo usarlos, cómo puedo hacerlos todos, cómo puedo conectarlos todos para interactuar entre mis componentes. ¿Cómo puedo usarlos en React, en Visual Effects, en lo que sea que quieras. Así es exactamente cómo tenemos que cambiar nuestra forma de pensar para colocar la documentación relacionada con un componente en las partes correctas de nuestra documentación general en su totalidad.

Entonces, con eso, ahora podemos jugar con los documentos en vivo porque podemos incrustar nuestro componente que probablemente está aislado de nuestra aplicación final en nuestra documentación a mano. Así que ahora es muy fácil simplemente jugar con nuestro componente en un entorno de prueba con este documento, este componente en nuestra documentación, jugar con él y probarlo, tener alguna especie de experimento, romperlo en algún momento. Pero esto es solo porque puedes usar tu componente en un área dedicada que está en vivo en la documentación. Entonces, necesitamos mezclar este componente en nuestra documentación, importarlo en nuestra documentación y tenerlo en vivo aquí. Entonces, ¿cómo podemos hacer eso ahora mismo? Esta es la respuesta que nos brinda el entorno MDX. Entonces, MDX es Markdown pero un Markdown glorificado.

Entonces, al escribir tus documentos, probablemente estés usando Markdown para escribir tu documentación. Esto es solo azúcar sintáctica en HTML, probablemente conozcas Markdown porque está en todas partes en este momento, desde GitHub hasta cualquier CMS o plataforma de documentación o plataformas de producción de documentos, por lo que es una sintaxis realmente simple, fácil de leer, fácil de contribuir, incluso si no eres técnico en absoluto. Porque esto es simplemente escribir texto con algún tipo de marcado que son solo caracteres simples, por lo que no es tan complejo. Es compatible con cualquier editor de texto, es muy fácil de usar, pero es demasiado simple para usar con documentos realmente complejos. Quiero decir, con Markdown no puedo incrustar mi componente en él, así que tengo que hacer algunas cosas. OK, puedo incrustar HTML directamente en mi Markdown, pero no es suficiente. Necesito algo más avanzado, y necesito algo más útil cuando quiero trabajar con él. Por eso ahora tenemos la sintaxis MDX, y el MDX es simplemente JSX incrustado en Markdown. O más que eso, esto es Markdown convertido a JSX, que ahora se convierte en HTML. Entonces, esto es un paso más entre el Markdown y el HTML en el proceso de renderizado. Esto no es solo una conversión lineal de Markdown a HTML, sino de Markdown a JSX a HTML. Entonces, en este entorno, cuando estoy trabajando en mi Markdown, en realidad estoy trabajando en un documento JS o más bien un documento JSX.

4. Incrustación de componentes en Markdown

Short description:

Ahora tenemos componentes en Markdown directamente. Podemos incrustar componentes externos, pasar props y contar con soporte nativo de TypeScript. MDX nos permite incrustar cualquier tipo de componente utilizando una sintaxis flexible de Markdown. Es fácil configurar MDX con diferentes entornos, desde Gatsby hasta ReactStatic. Solo hay que agregar una línea de configuración.

Así que puedo importar, exportar cualquier tipo de documento en él. Podría escribir Markdown en él, pero también podría colocar mi documento, mi componente en mi documento en este momento al final. Y esto ahora está incrustado en mi Markdown. Y esto se renderiza en mi Markdown, en el proceso final. Así que esto es realmente útil porque ahora tenemos componentes en Markdown directamente.

Bajo el capó, esto es solo el nivel estándar de Markdown con la sintaxis nativa de JSX todo mezclado. Podríamos incrustar componentes externos. Podríamos incrustar la representación de funciones y la representación de funciones externas. Podríamos pasar props. Podríamos contar con soporte nativo de TypeScript. Podríamos tener todo lo que estamos acostumbrados a hacer con JSX pero directamente en nuestro Markdown. Porque en el paso final, esto es solo un proceso de renderizado donde tengo una sintaxis de Markdown, una sintaxis de MDX, luego esto se convierte en un AST. Este es un AST de JSX. Luego, este AST de JSX se convierte en un AST de HTML. Luego, este AST de HTML se convierte en HTML. Esto es solo un proceso de conversión diferente. Esto es exactamente lo que estamos buscando. Ahora tenemos una sintaxis de Markdown lo suficientemente flexible como para ser utilizada para incrustar cualquier tipo de componente.

Tengo un diseño simple de MDX. Puedo incrustar cualquier prop en él, cualquier componente en él y puedo renderizar cualquier cosa que desee. Esa es una sintaxis JSX regular o una sintaxis de Markdown regular y las mezclo todas. Ahora tenemos diferentes entornos listos para incrustar el MDX. MDX es realmente simple. Solo hay que agregar una línea de configuración en tu configuración de Webpack o tu configuración de relab. Esto es realmente fácil de hacer. No es una configuración compleja de tener. Pero ahora dividimos este entorno en dos mundos. Tenemos por un lado las herramientas básicas que están listas para incrustar el MDX. Puedo hacer MDX con cualquier tipo de generador estático, desde Gatsby hasta ReactStatic o cualquier cosa que desees. Solo tengo que incrustar mi configuración de MDX en mi Webpack o relab, y todo funcionará libremente.

5. Frameworks y Soluciones de Documentación

Short description:

Este es un marco de documentación que proporciona herramientas para incrustar MDX y crear documentación adecuada. Es útil si estás buscando producir documentación en lugar de solo Macdon con componentes. Se recomiendan herramientas como Storybook y Duxy con soporte MDX para soluciones de documentación.

Pero esto está totalmente desnudo en el sentido de que no tengo ningún preajuste, no tengo ningún diseño, ningún playground, ninguna prop, más sobre eso más adelante. Así que tienes que hacer todo lo que quieras por ti mismo. Eres totalmente libre, esto es completamente flexible, pero es mucho trabajo al principio solo para tener algo funcionando y una documentation funcionando.

Esto es realmente, realmente útil si solo quieres producir un Macdon con sintaxis JSX. Por otro lado, tienes soluciones orientadas a la documentation que incrustan MDX en primer lugar y que proporcionan cualquier tipo de herramienta que necesites para incrustar tu documentation en algún momento con un diseño adecuado, una tabla de props adecuada, playgrounds adecuados, etc. Esta es una solución como Storybook con soporte nativo de páginas MDX o Dubbd. Viene con más restricciones porque es un marco de documentation, pero esto es realmente útil si lo que buscas es producir documentation y no solo producir Macdon con componentes en ellos. Si estás buscando una solución de documentation, te animo a que eches un vistazo a herramientas de documentation orientadas como Storybook, Duxy, etc., con soporte nativo de MDX en ellas. Porque te brindan todo lo que necesitas para simplemente producir tu propia documentation con ellas.

6. Incrustación de Documentación en Componentes

Short description:

Cuando trabajas con componentes, es esencial incrustar la documentación directamente dentro del propio componente. Backlight, un editor de sistemas de diseño, permite un desarrollo completo orientado a componentes. Cada componente puede tener su propia documentación, pruebas y herramientas de diseño incrustadas en él. MDX proporciona una forma de importar componentes directamente en la documentación. Los playgrounds y las tablas de props son herramientas útiles para renderizar y personalizar componentes en la documentación.

Ahora tienes que organizar tu proyecto. Cuando estás trabajando en una documentation que está relacionada con componentes, es sentido común incrustar la documentation en el propio componente, en lugar de tener una documentation que está decorada a partir de los componentes, debes incrustarlo todo en ellos. Esta es la vista de Backlight.

Backlight es una herramienta en la que estamos trabajando en DivRiots. Es un editor de sistemas de diseño. Por lo tanto, está totalmente orientado a componentes. Cada parte de la interfaz de separación de preocupaciones está orientada a componentes. Entonces, cuando tengo mis componentes, puedo escribir mi código en mis componentes, pero más específicamente, puedo tener mis historias, mis pruebas, mi documentation, mis herramientas de diseño, todo está incrustado en mi componente. Así que tengo uno superior, donde tengo un gran readme o una gran descripción general de mi aplicación. Ese es mi componente superior, finalmente. Cada vez que quiero tener una documentation relacionada con un componente dedicado, como mi botón, solo tengo que ir a mi botón, abrir la carpeta de documentación en la carpeta de mi componente, que es la carpeta de mi botón, y en mi carpeta de documentation, tengo todo lo relacionado con mi componente, con mi botón, escrito directamente en MDX con soporte de GSX, en Madinx, y con esta sintaxis de MDX, puedo importar mi botón directamente en mi documentation. Veamos cómo. Entonces, tenemos un componente GSX. Se ejecutan en un entorno aislado, que reacciona al entorno de envoltura de nuestro componente. Así que solo quiero incrustarlo todo de la misma manera. Entonces, cómo trabajar con ellos con tu propio playground. El hecho es que MDX es demasiado básico. Necesitamos algo más avanzado para trabajar con ellos. Hablé de los playgrounds y las tablas de props. Los playgrounds son finalmente una especie de sandbox que puedo usar para renderizar directamente cualquier tipo de componente directamente en mi documentation. Así que con mi playground, puedo escribir mi componente o incrustarlo directamente, y mi playground estará listo para extraer cualquier parte de él para mi proceso de renderizado. Puedo tener una sola importación de mis componentes, y puedo tenerla en la vista de renderizado, la vista de compilación, una vista EST, lo que quiera. Y este playground me permite tener una sola importación en mi MDX, y esto está renderizando cada parte de mis diferentes vistas de mis componentes y lo que quiero. Otra cosa es la tabla de props. Porque mi componente viene con diferentes props que me permiten personalizarlo, quiero tenerlos directamente en mi documentation para ver cómo se supone que funcionan mis componentes. Así que esto es una especie de reflector para las propiedades del componente. Esto se genera automáticamente con cualquier tipo de propiedades que pueda exponer desde mi componente. Así que esto está actualizado porque todo lo que tengo que hacer es poner algo como, dame la tabla de props de este componente y todo funciona. Esta es la vista de

7. Incrustación de Componentes y Migración a MDX

Short description:

Puedes incrustar un solo componente como un reflector de tu componente y tener acceso a todas sus propiedades en tu documentación. MDX, combinado con componentes, historias, playgrounds y tablas de props, permite una experiencia de documentación completa. La migración a MDX es fácil si ya estás trabajando con Markdown. Solo organiza tu documentación utilizando el framework ADDXS, aísla la documentación de cada componente y elige la herramienta o plataforma adecuada. MDX es solo el comienzo de una nueva era con más formatos y herramientas para incrustar y mejorar la documentación. Enfócate en las herramientas avanzadas de DevTools e incrusta código en la documentación. Las herramientas de DevRiot, como webcomponents.dev y backlight.dev, ofrecen soluciones completas para la documentación y el desarrollo orientado a componentes.

Sistema de tablas de props de storybook. Esto es solo una línea. Solo incrustas un solo componente que es un reflector de mi componente. Y en mi documentación, tengo acceso a cualquier parte de las propiedades de mi componente en absoluto. Así que esto es realmente útil si quiero tenerlo. Luego puedes codificar desde tu documentación, puedes importar el componente que deseas documentar, puedes escribir tu Markdown como estás acostumbrado cuando trabajas en la documentación y puedes incrustar cualquier tipo de elementos relacionados con esta descripción del componente, el playground, la tabla de props, todo estará en una sola línea alineada con mi código porque la documentación no está decorada para mis componentes en este momento, los incrusta en ella. Así que finalmente, MDX más componentes, historias, formato, más playgrounds, más tablas de props, ¡genial! Este es el mejor mundo. Puedes tener una documentación que está totalmente relacionada con tus componentes en absoluto. Entonces, ¿cómo migrar a MDX? Probablemente ya estés trabajando en la documentación en formato Markdown. Así que no tienes que adaptar nada. Solo tienes que organizar tu documentación desde el framework ADDXS para tus diferentes componentes. Así los tengo debidamente aislados cada documentación para cada componente al lado. Luego puedes elegir la herramienta adecuada o una plataforma de documentación en blanco o una herramienta de framework de documentación. Luego puedes comenzar a jugar con tus componentes. Y eso es todo. Porque MDX es solo el comienzo. Esta es solo la primera herramienta de una nueva era. Y estoy seguro de que tendremos muchos otros formatos y muchas otras herramientas para incrustar nuestra documentación y mejorar nuestros componentes y nuestra documentación. Pero escribir documentación fuera de escribir es simplemente absurdo. Tenemos que incrustar nuestro código en nuestra documentación. Y esta es la premisa del formato MDX. Esto es lo que estamos buscando. Ahora debes enfocarte en DevTools avanzados e integrados en lugar de reinventar la rueda en algún momento. Solo debes enfocarte en lo que estás buscando. Esto es exactamente lo que estamos haciendo con las herramientas en las que estamos trabajando en DevRiot, como backlight de webcomponents.dev. Si tienes alguna pregunta, nos veremos en una sesión de preguntas y respuestas en este momento. Para todo lo demás, muchas gracias. Soy Mats, un defensor del desarrollo participativo en DevRiot, donde estamos trabajando en soluciones orientadas a documentos y componentes como webcomponents.dev o backlight.dev, que son IDE orientados a sistemas de diseño en tu navegador, directamente en tu navegador con todo lo que necesitas en él, como el proceso de documentación, MDX, playgrounds, props, tablas, y más, échales un vistazo. Muchas gracias.

Check out more articles and videos

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

No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
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.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
React Advanced 2021React Advanced 2021
47 min
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
Top Content
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
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.
Gestión del Estado de React: 10 Años de Lecciones Aprendidas
React Day Berlin 2023React Day Berlin 2023
16 min
Gestión del Estado de React: 10 Años de Lecciones Aprendidas
Top Content
This Talk focuses on effective React state management and lessons learned over the past 10 years. Key points include separating related state, utilizing UseReducer for protecting state and updating multiple pieces of state simultaneously, avoiding unnecessary state syncing with useEffect, using abstractions like React Query or SWR for fetching data, simplifying state management with custom hooks, and leveraging refs and third-party libraries for managing state. Additional resources and services are also provided for further learning and support.

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 🤐)
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.
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.
Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
Workshop
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión