Depuración Web Moderna

Spanish audio is available in the player settings
Rate this content
Bookmark

Pocos desarrolladores disfrutan depurando, y la depuración puede ser compleja para las aplicaciones web modernas debido a los múltiples marcos, lenguajes y bibliotecas utilizados. Pero, las herramientas de desarrollo han avanzado mucho en facilitar el proceso. En esta charla, Jecelyn profundizará en el estado moderno de la depuración, las mejoras en DevTools y cómo puedes usarlas para depurar tus aplicaciones de manera confiable.

This talk has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

FAQ

Chrome DevTools es un conjunto de herramientas de desarrollo web integradas en el navegador Google Chrome que ayuda a los desarrolladores a depurar código, optimizar el rendimiento, analizar la interacción del usuario y más. Se utiliza para hacer la depuración más eficiente, permitiendo ver y editar el código HTML, CSS y JavaScript en tiempo real.

Las herramientas de depuración en Chrome DevTools han evolucionado de mostrar muchas pestañas y paneles con información menos relevante, a una interfaz más limpia que oculta los marcos irrelevantes para centrarse en el código y los componentos que realmente importan durante la depuración.

Los Source Maps son archivos que mapean el código transformado, minimizado o compilado de vuelta a su forma original. Chrome DevTools los utiliza para ayudar a los desarrolladores a depurar su código más fácilmente, mostrando el código fuente original en lugar de las versiones transformadas o minimizadas.

Chrome DevTools ha mejorado la gestión de archivos de frameworks durante la depuración al ocultar automáticamente los marcos irrelevantes y mostrar solo lo que es relevante para el desarrollador. Además, ofrece la opción de 'Mostrar más marcos' para explorar todos los archivos si es necesario.

En Chrome DevTools, los usuarios pueden configurar manualmente para ignorar archivos específicos durante la depuración haciendo clic derecho en el archivo y seleccionando 'Añadir este script para reconocer'. También se pueden configurar listas de exclusión en las settings para automatizar este proceso.

Chrome DevTools ha rediseñado la UX de puntos de interrupción para agruparlos por archivos, facilitando la identificación y gestión. Los usuarios pueden desactivar o eliminar todos los puntos de interrupción dentro de un archivo con acciones rápidas, y también configurar puntos de interrupción condicionales y Lockpoints directamente desde la interfaz.

Para depurar código de producción o minimizado, se sugiere generar un mapa de origen y guardarlo en un lugar seguro. Luego, se puede adjuntar el mapa de origen al código de producción dentro del panel de fuentes de Chrome DevTools cuando sea necesario para depurar de manera más efectiva.

Jecelyn Yeen
Jecelyn Yeen
29 min
01 Jun, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla discute la depuración web moderna y las últimas actualizaciones en Chrome DevTools. Destaca nuevas características que ayudan a identificar problemas más rápido, mejora la visibilidad de archivos y el mapeo de fuentes, e ignorar y configurar archivos. El panel de puntos de interrupción en DevTools ha sido rediseñado para un acceso y gestión más fácil. La charla también cubre los desafíos de depurar con mapas de fuentes y los esfuerzos para estandarizar el formato de mapa de fuentes. Por último, proporciona consejos para mejorar la productividad con DevTools y enfatiza la importancia de informar errores y usar mapas de fuentes para depurar el código de producción.
Available in English: Modern Web Debugging

1. Introducción a la depuración web y DevTools

Short description:

Hola a todos. Hoy voy a hablar sobre la depuración web moderna y DevTools. Trabajo en el equipo de Chrome DevTools y comparto emocionantes actualizaciones sobre Chrome DevTools. Hace 15 años, el desarrollo web era diferente. Ahora usamos diferentes lenguajes y marcos. Compartiré herramientas para mejorar la depuración.

Hola a todos. Sí. Así que hoy voy a hablar sobre la depuración web moderna y DevTools. Entonces, mi nombre es Jesslyn. Este es mi manejador porque me gustan mucho los peces. Por eso mi manejador también es Jackfish.

Así que trabajo en el equipo de Chrome DevTools. Si en cada lanzamiento no solo descartaste esta pestaña de novedades, si haces clic en ella, podrías haber visto mi cara antes porque en cada nuevo lanzamiento compartiré algunas noticias emocionantes, actualizaciones emocionantes sobre Chrome DevTools y te mostraré algunos consejos sobre cómo hacer que seas productivo con Chrome DevTools.

Así que comencemos mi charla con esta captura de pantalla de hace 15 años. Así que estas son las DevTools hace 15 años. Notarás que hay muchas menos pestañas, muchos menos paneles que puedes usar. Y lo que es más interesante, también había algo llamado cripto. Así que la cripto comenzó desde ese tiempo, pero no realmente. El tiempo, ese tiempo cuando desarrollamos aplicaciones web, es mucho más diferente que cómo desarrollamos aplicaciones web ahora.

Por ejemplo, en aquel tiempo, cuando empezaste solo usábamos HTML, CSS y puro JavaScript para hacer desarrollo. Luego, después de eso, queríamos mejorar el rendimiento. Entonces comenzamos a comprimir y minimizar nuestro CSS y JavaScript. Vamos a los días, ahora, hoy en día lo que escribes no es exactamente lo que el navegador lee. Por ejemplo, usas diferentes lenguajes para escribir tus aplicaciones. Usas JSX, usas Spark, por ejemplo. Usas CSS o less para CSS. Usas TypeScript para reemplazar JavaScript. Y usas muchos marcos diferentes también, como Angular, React y Vue. E incluso tenemos meta marcos como Next y Nuxt también. Y todas estas herramientas necesitan pasar por un proceso para compilarlo y comprimirlo y transformarlo en lo que los navegadores pueden entender. Y también necesitamos Vue 2 como Vite, Webpack, rollout y ESVue, como muchas de estas herramientas para hacer que todo funcione.

Ahora, desde el día que comenzamos el desarrollo web hasta ahora que ya no estamos usando solo HTML, CSS y JavaScript para desarrollar tus aplicaciones, ¿qué pasa con la depuración? ¿Tenemos algún avance en la depuración también? Entonces, hoy, voy a compartir contigo algunas herramientas para mejorar tu depuración porque es importante. Este somos nosotros. Nosotros codificamos durante seis minutos probablemente, copiamos y pegamos, hacemos algunas investigaciones, revisamos GPT o Stack Overflow, pegamos el código dentro, pero simplemente no funciona y pasamos seis horas para depurarlo. Vale.

2. Nuevas características para una identificación de problemas más rápida

Short description:

Comencemos con algunas de las nuevas características que te ayudan a identificar problemas más rápidamente. Una de las cosas que harás durante la depuración es revisar la consola en busca de registros de errores. Anteriormente, los marcos irrelevantes abarrotaban la consola, lo que dificultaba la identificación de problemas. Ahora, ocultamos los marcos adicionales y mostramos solo lo que es relevante para tu aplicación. También puedes ver la pila de llamadas y ocultar marcos irrelevantes. Otra característica es la capacidad de ver tu código primero, acercándolo a tu IDE.

Comencemos con algunas de las nuevas características que te ayudan a identificar problemas más rápidamente. Entonces, una de las cosas que haces cuando te enfrentas a problemas durante la debugging, probablemente lo primero que harás es ir a la console para ver si hay algún registro de error en la console.

Entonces, imagina que vas a esta página y luego ves esta console. No es muy útil cuando estás desarrollando. Entonces, la primera captura de pantalla aquí es una captura de pantalla de la aplicación Angular, y la siguiente es de Vue.js. Entonces, permíteme abrir una aplicación de muestra aquí. Vale.

Entonces, por ejemplo, si hago clic en este botón de incremento. Si lo abro, esto es lo que vemos ahora. Entonces, anteriormente, si comparas esta aplicación con la anterior, te darás cuenta de que antes veías muchos frameworks irrelevantes como Zone.js, Async to Generator.js, como todos estos archivos JavaScript irrelevantes que pertenecen al framework en sí. Pero ahora, si abres esto, lo que hacemos es que ocultamos todos los marcos adicionales. Todos los marcos irrelevantes solo te muestran lo que sucede exactamente en tu aplicación, tus componentes. Entonces, por ejemplo, ves, como, te mostramos, como, el problema podría estar en el componente de la aplicación y en el componente del botón. Y si quieres ver el code del framework en sí, puedes hacer clic en Mostrar más marcos y abrir y revisar todos los demás también. Pero no tienes que hacerlo. Esto es lo que veías antes. Hay una larga lista hasta que puedes identificar dónde están los problemas.

Otra cosa que puedes hacer es que durante la debugging, también mejoramos el... Entonces, esta es una aplicación de Vue.js. Durante la debugging, tienes lo mismo... Tenemos las mismas características también. Entonces, por ejemplo, puse un punto de interrupción aquí. Si hago clic en Añadir, incremento el número. Puedes ver que en la pila de llamadas, a la derecha aquí, también ocultamos todos los marcos irrelevantes. Solo te mostramos lo que es relevante. Como, te mostramos las funciones de incremento, y te mostramos que actualmente estás en funciones de espera en el incremento. Y si quieres ver todos los marcos ignorados, puedes hacer clic en esto y expandir, y verás todos los demás que no son tan relevantes para lo que estás debugging en este momento. Y otra nueva característica que puedes probar es ver tu code primero. Algunos de los comentarios que recibimos es que, desde la vista aquí, como tu panel de fuentes aquí, lo que ves es lo que el navegador realmente lee mezclado con tu code real, cuando lo abres en el IDE. Entonces, si quieres ver la vista que se acerca más a tu IDE, lo que puedes hacer es hacer clic en este botón de archivo en el panel de fuentes, seleccionar agrupar por autor y desplegado.

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

El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
De la Fricción al Flujo: Depuración con Chrome DevTools
JSNation 2024JSNation 2024
32 min
De la Fricción al Flujo: Depuración con Chrome DevTools
The Talk discusses the importance of removing frictions in the debugging process and being aware of the tools available in Chrome DevTools. It highlights the use of the 'Emulate a Focus Page' feature for debugging disappearing elements and the improvement of debugging tools and workflow. The Talk also mentions enhancing error understanding, improving debugging efficiency and performance, and the continuous improvement of DevTools. It emphasizes the importance of staying updated with new features and providing feedback to request new features.
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
React Advanced Conference 2021React Advanced Conference 2021
27 min
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
Top Content
The Talk discusses optimizing rendering of big tables using Flipper, a new version that is ten times faster with improved user interaction and richer data. It explores optimizing rendering with React, virtualization, filtering, sorting, and windowing techniques. The introduction of the Flipper Datasource packet simplifies handling updates, inserts, and removals. The performance of the Flipper data source package is excellent, even in a debug build of React, with minimal CPU usage. The Q&A session covers incremental sorting, dynamic row height, and the potential for two-dimensional virtualization in the future.
Aplicaciones web de alta velocidad: más allá de lo básico
JSNation 2022JSNation 2022
30 min
Aplicaciones web de alta velocidad: más allá de lo básico
This talk covers the latest features in Chrome DevTools, including network tab analysis, performance tab optimization, and user flows. It discusses optimizing HTTP requests with fetch priority to improve loading time. The performance tab provides insights on frame drops, long tasks, and the importance of minimizing total blocking time. The talk also highlights the optimization of page rendering and introduces user flows in Chrome DevTools.

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 WorkshopFree
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 🤐)
React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

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

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Depuración del Rendimiento de React
React Advanced Conference 2023React Advanced Conference 2023
148 min
Depuración del Rendimiento de React
Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Veía una interacción lenta, probaba una optimización aleatoria, veía que no ayudaba, y seguía probando 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. Hacía una grabación en Chrome DevTools o React Profiler, la examinaba, intentaba hacer clic en cosas al azar, y luego la cerraba 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 cómo 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, cubriremos el rendimiento de interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)