De la Fricción al Flujo: Depuración con Chrome DevTools

Rate this content
Bookmark

Codificar y depurar debería fluir, no desvanecerse. Veamos qué hay de nuevo y mejorado en Chrome DevTools para que tu viaje de desarrollo y depuración web sea suave como la seda.

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

Jecelyn Yeen
Jecelyn Yeen
32 min
13 Jun, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla aborda la importancia de eliminar las fricciones en el proceso de depuración y conocer las herramientas disponibles en Chrome DevTools. Destaca el uso de la función 'Emular una página con enfoque' para depurar elementos que desaparecen y la mejora de las herramientas y el flujo de trabajo de depuración. La charla también menciona mejorar la comprensión de errores, mejorar la eficiencia y el rendimiento de la depuración, y la mejora continua de DevTools. Se enfatiza la importancia de mantenerse actualizado con las nuevas funciones y proporcionar comentarios para solicitar nuevas características.

1. Introducción a Chrome DevTools

Short description:

Hoy voy a hablar sobre Chrome DevTools o coches, pero quiero centrarme en eliminar las fricciones a lo largo del proceso de depuración. Permítanme comenzar con una historia personal. Mi pareja y yo nos mudamos recientemente a una nueva casa con jardín. Como personas perezosas, esperamos a que el césped creciera antes de decidir limpiar el jardín. Encontramos un par de tijeras en el jardín, pero elegimos hacer el trabajo manualmente. Después de buscar en nuestro desordenado sótano, encontramos una recortadora de vidrio electrónica y terminamos el trabajo en 10 minutos. DevTools puede ser como herramientas ocultas en tu garaje, a veces difíciles de encontrar cuando más las necesitas. Es importante eliminar las fricciones en el proceso de depuración y conocer las herramientas disponibles. Por ejemplo, inspeccionar y depurar elementos que desaparecen puede ser un problema común. Permítanme mostrarles una demostración de este problema.

más me emociona. Así que lo primero de lo que quiero hablar es cómo intentamos eliminar las fricciones a lo largo del viaje de depuración para mejorar tu flujo de depuración. Permítanme comenzar con una historia personal. Tal vez tengan historias similares. Recientemente, mi pareja y yo nos mudamos a una nueva casa. Lo bueno es que tienen un jardín. Lo malo es que tienen un jardín en el que el césped crece de vez en cuando. Y luego, como persona perezosa, esperamos hasta el último minuto después de que el césped crece hasta cierta longitud. Luego intentamos, bueno, tenemos que limpiar el jardín ahora. Así que caminamos por el jardín y descubrimos que en realidad tenemos un par de tijeras en el jardín para hacer el trabajo, pero necesitamos hacerlo manualmente. Eso todavía hace el trabajo. Y luego, después de eso, como nos mudamos recientemente a la casa, recordamos vagamente que en el sótano, en los estantes de dos niveles, el propietario nos dejó una recortadora de vidrio electrónica para hacer las cosas. Y tampoco estamos seguros de si la recortadora de vidrio está allí. Es más rápido, pero no estamos seguros. ¿Adivinen cuál elegimos, la manual o la automática? Sí. Elegimos la manual porque pensamos que podemos vivir con eso. Así que decidimos que debería ser rápido, una hora en el proceso de corte manual, finalmente bajamos al sótano y luego buscamos en el desordenado sótano y luego finalmente lo encontramos y luego hicimos el trabajo en menos de 10 minutos, listo. La razón por la que cuento esta historia no es para contarles lo perezoso que soy, no es eso, sino para pensar en qué fricciones puedo eliminar entre este proceso de luchar y cortar el césped. ¿Cómo eliminamos la fricción de este proceso para prepararnos para el próximo recorte? Si lo piensan, DevTools, probablemente sea como su, a veces es como su garaje, es como su sótano, estantes de dos niveles, tenemos muchas de estas herramientas ocultas que a veces puedes obtener, conocerlas por tus colegas, pero sabes cuando realmente tienes un problema, y tratas de debugarlo, y luego puedes descubrir que, oh, hay esta función, tal vez está demasiado lejos, recuerdo vagamente eso, a veces puede que no tengas suficiente tiempo para hacer una búsqueda en Google y obtener el resultado y luego simplemente lo dejas donde puedas, intentas debugar la cosa, y a veces es porque la herramienta está realmente muy oculta, o podría ser a veces que no sabes lo que no sabes. La herramienta existe, ni siquiera piensas en encontrarla y usarla. Así que tomemos como ejemplo, inspeccionar y debugar elementos que desaparecen. Supongo que muchos de nosotros hemos tenido estos problemas antes, como si estás usando Daisy UI o cualquier UI que tenga un desplegable, a veces el resultado del desplegable o el estilo no es correcto, quieres inspeccionar el resultado y hacer algunos cambios de code, o el otro, probablemente tienes un desplegable de búsqueda, como el de YouTube, que quieres inspeccionar el resultado y hacer algo en él, o si estás usando bootstrap, este es el pop over que tiene las preguntas. Así que ahora hagamos la demostración para mostrarles el problema. Ah, por cierto, la primera diapositiva que mostré antes es una captura de pantalla real que tomé de aquí. Puedes usar %c en el console log para pasar tu estilo y dar estilo a tu mensaje de manera agradable como esto. Genial. De acuerdo. Volvamos al elemento que desaparece. Así que digamos que si hago clic en este pop over desechable, quiero debugar esto. Quiero cambiar el estilo. Entonces lo que haré es que normalmente simplemente haré clic en el icono de inspección.

2. Depuración de elementos que desaparecen

Short description:

Oh, mi navegador se congeló durante una demostración en vivo, pero logré abrir una nueva pestaña. Si te encuentras en un escenario donde un elemento desaparece al hacer clic, en lugar de cambiar tu código o usar un tiempo de espera, puedes utilizar una función en DevTools llamada Emular la página enfocada. Te permite inspeccionar el elemento y se puede habilitar de forma global.

Oh, mi navegador se congeló. Permíteme simplemente actualizar eso, hacerlo de nuevo. Haz eso. De acuerdo. De acuerdo. Todo el navegador se congeló. Sabes, esto es hacer una demostración en vivo en el escenario. Genial. Abriré una nueva pestaña en él. De acuerdo. Por cierto, estoy usando Chrome Canary. Esto es de vanguardia. Sí. Por eso es lo que significa estar a la vanguardia. De acuerdo. Permíteme abrir esto. De acuerdo. Genial. Entonces quieres depurar esto. Si intentas hacer clic en este icono e intentas inspeccionarlo, ¿ves? Eso desapareció. ¿Cuántos de ustedes han enfrentado este escenario antes? De acuerdo. La forma en que puedes hacer esto, tal vez cambies tu código, o tal vez inyectes un tiempo de espera, no sé cuántos segundos, para que puedas realizar la acción rápidamente y luego volver al flujo. Entonces, esta función en DevTools que existe probablemente desde hace cinco o seis años, pero nadie la descubrió. Pero recientemente, hicimos algo bueno. Lo hicimos ligeramente visible. Ahora, si vas al panel de Elementos, a la pestaña Estilos, si haces clic en este botón de reloj, hay esta función llamada Emular la página enfocada. Si haces clic en eso, ahora puedes inspeccionarlo. Y esta casilla de verificación en sí misma es una configuración global. Puedes activarla y nunca desactivarla. De acuerdo.

QnA

Check out more articles and videos

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

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
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.
Depuración con Chrome DevTools
JSNation Live 2021JSNation Live 2021
11 min
Depuración con Chrome DevTools
Here are some tips for better utilizing DevTools, including using the run command, customizing keyboard shortcuts, and emulating the focus effect. Learn how to inspect memory, use the network panel for more control over network requests, and take advantage of console utilities. Save frequently used code as snippets and use local overrides for easy editing. Optimize images by using a more optimized format like AVIF and track changes in the network panel to see the reduced data size.
Análisis estático en JavaScript: Lo fácil y lo difícil
JSNation 2023JSNation 2023
23 min
Análisis estático en JavaScript: Lo fácil y lo difícil
Static analysis in JavaScript involves analyzing source code without executing it, producing metrics, problems, or warnings. Data flow analysis aims to determine the values of data in a program. Rule implementation in JavaScript can be straightforward or require extensive consideration of various cases and parameters. JavaScript's dynamic nature and uncertainty make static analysis challenging, but it can greatly improve code quality.
Depurando un Bloqueo No Reproducible
React Advanced Conference 2021React Advanced Conference 2021
20 min
Depurando un Bloqueo No Reproducible
The Talk discusses a vicious bug that caused 20,000 crashes in a JS application. The bug was an array index out of bounds exception in the SimplePool class. The team used a debugger to analyze the bug and discovered a race condition caused by an upgrade to React Native SVG. They collaborated with React Native contributors to fix the issue and deployed a patched version. The Talk emphasizes the importance of using a crash reporting tool, monitoring release health, and learning from bugs and source code analysis.
Mapas de origen de JavaScript, ¿Podemos hacerlo mejor?
JSNation 2023JSNation 2023
27 min
Mapas de origen de JavaScript, ¿Podemos hacerlo mejor?
Source maps allow understanding of transpiled, bundled, or minified code. Debugging with post hoc and debug identifiers helps identify files. Issues with source maps include hash collisions and missing function names. Various techniques can be used to determine the function that caused an error. Source maps can store additional information and improvements can be made to path resolution and column positions. Code points and token positions can differ across browsers. Detecting source maps can be challenging without a standardized JSON schema.

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 🤐)
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 🤐)
El Masterclass de Clinic.js
JSNation 2022JSNation 2022
71 min
El Masterclass de Clinic.js
Workshop
Rafael Gonzaga
Rafael Gonzaga
Aprende las formas de la suite de herramientas clinic, que te ayudan a detectar problemas de rendimiento en tus aplicaciones Node.js. Este masterclass te guiará a través de varios ejemplos y te proporcionará los conocimientos necesarios para hacer pruebas de rendimiento y solucionar problemas de E/S y del bucle de eventos.
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
JSNation 2023JSNation 2023
44 min
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
WorkshopFree
Ryan Albrecht
Ryan Albrecht
¿Conoces ese molesto error? ¿El que no aparece localmente? Y no importa cuántas veces intentes recrear el entorno, no puedes reproducirlo. Has revisado las migas de pan, leído la traza de pila y ahora estás jugando al detective para unir los tickets de soporte y asegurarte de que sea real.
Únete al desarrollador de Sentry, Ryan Albrecht, en esta charla para aprender cómo los desarrolladores pueden utilizar la Reproducción de Sesiones, una herramienta que proporciona reproducciones de video de las interacciones de los usuarios, para identificar, reproducir y resolver errores y problemas de rendimiento más rápido (sin golpear tu cabeza contra el teclado).
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
TestJS Summit 2021TestJS Summit 2021
146 min
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
WorkshopFree
Serkan Ozal
Oguzhan Ozdemir
2 authors
En este masterclass, construiremos un entorno de pruebas para una aplicación preconstruida, luego escribiremos y automatizaremos pruebas de extremo a extremo para nuestra aplicación serverless. Y en el último paso, demostraremos lo fácil que es entender la causa raíz de una prueba errónea utilizando pruebas distribuidas y cómo depurarla en nuestro pipeline de CI/CD con Thundra Foresight.

Tabla de contenidos:
- Cómo configurar y probar tu infraestructura en la nube
- Cómo escribir y automatizar pruebas de extremo a extremo para tus cargas de trabajo serverless
- Cómo depurar, rastrear y solucionar problemas de fallas en las pruebas con Thundra Foresight en tus pipelines de CI/CD