Chuck's Academy

JavaScript Intermedio

Debugging Avanzado y Herramientas de Desarrollo

El debugging es una habilidad esencial para identificar y resolver problemas en el código. En este capítulo, exploraremos técnicas avanzadas de debugging y cómo utilizar herramientas de desarrollo para depurar y mejorar la calidad del código.

Uso de console para Debugging Avanzado

Aunque console.log es la herramienta de debugging más común, existen otros métodos de console que pueden proporcionar información más detallada.

  • console.error: Para mostrar mensajes de error en rojo en la consola.
  • console.warn: Para advertencias, ideal para resaltar problemas menores.
  • console.table: Para visualizar datos tabulares de forma estructurada.
javascript
"Aquí usamos 'console.table' para mostrar datos en una tabla, lo que hace más fácil visualizar la información en estructuras complejas."

Uso de Breakpoints en el Navegador

Los breakpoints permiten pausar la ejecución del código en una línea específica, lo que ayuda a analizar el estado de las variables en ese momento.

Tipos de Breakpoints

  1. Breakpoint de línea: Pausa en una línea específica del código.
  2. Breakpoint condicional: Pausa cuando se cumple una condición específica.
  3. Breakpoint de DOM: Pausa cuando un elemento específico cambia en el DOM.
  4. XHR Breakpoint: Pausa cuando se hace una solicitud HTTP específica.

Cómo Usar un Breakpoint

  1. Abre las herramientas de desarrollo en tu navegador (Generalmente F12 o clic derecho -> Inspeccionar).
  2. Ve a la pestaña "Sources" o "Fuentes".
  3. Haz clic en el número de línea donde deseas pausar.
javascript
"En este ejemplo, puedes agregar un breakpoint en la línea de 'filter' para pausar y revisar los elementos en 'data' en tiempo de ejecución."

Call Stack y Stack Trace

El Call Stack muestra el rastro de llamadas de funciones que han llevado a la línea actual, lo cual es útil para rastrear el flujo del código.

javascript
"Aquí, el 'call stack' mostrará el orden de las llamadas de 'first' a 'third', ayudándote a rastrear la secuencia de ejecución."

Uso de Watch y Scope en Herramientas de Desarrollo

La sección de Watch permite observar variables específicas y ver cómo cambian durante la ejecución del programa, mientras que Scope muestra el alcance y los valores de las variables en cada contexto.

  • Watch: Agrega expresiones personalizadas para observar cambios en variables.
  • Scope: Explora el contexto actual y las variables disponibles.
javascript
"Agrega 'x', 'y' y 'z' a la sección de 'Watch' para ver cómo sus valores cambian al ejecutar 'calculate'."

Depuración con debugger

El uso de la palabra clave debugger en el código permite establecer un punto de interrupción de forma programática.

javascript
"Al ejecutar este código, 'debugger' pausa la ejecución en la línea correspondiente, permitiéndote examinar el estado de 'age' en ese momento."

Profiler: Analizar el Rendimiento

El Profiler permite medir el rendimiento del código y detectar cuellos de botella. Genera un perfil de ejecución que muestra el tiempo que toma cada función.

Cómo Utilizar el Profiler

  1. Abre las herramientas de desarrollo y ve a la pestaña "Performance".
  2. Inicia la grabación y ejecuta el código que deseas analizar.
  3. Detén la grabación y revisa los resultados para identificar funciones que consumen mucho tiempo.

Herramientas para Depuración en Node.js

Node.js también tiene herramientas integradas para depuración.

Uso de node inspect

Puedes depurar un script de Node.js usando node inspect para acceder al modo de depuración interactivo.

bash
"Ejecuta el comando 'node inspect app.js' para iniciar el modo de depuración en Node.js, permitiéndote pausar y analizar el código en ejecución."

Integración con Visual Studio Code

Visual Studio Code permite depurar JavaScript de forma sencilla, tanto en el navegador como en Node.js, con breakpoints, watch, y herramientas de perfilado.

Configuración de Depuración en VSCode

  1. Abre tu archivo JavaScript en Visual Studio Code.
  2. Ve a la pestaña de "Run and Debug" y selecciona "JavaScript Debug Terminal".
  3. Coloca breakpoints y observa la ejecución paso a paso.
javascript
"Aquí, puedes colocar un breakpoint en la función 'sum' y depurar la ejecución directamente en Visual Studio Code."

Depuración de Promesas y Código Asíncrono

Depurar código asíncrono puede ser desafiante. Las herramientas de desarrollo permiten ver las promesas pendientes y el estado de cada una.

javascript
"Usa breakpoints en el código asíncrono para pausar y examinar los resultados de 'fetch' y 'data' mientras se resuelve la promesa."

Conclusión

El debugging avanzado en JavaScript requiere dominar varias técnicas y herramientas para identificar y solucionar problemas de manera eficiente. Al aprender a usar console, breakpoints, el Profiler y herramientas de depuración en Node.js, puedes mejorar la calidad y rendimiento del código.


Pregúntame lo que sea