Optimiza tu código: Sustituir console.log() por Debuggers

«

Muchos de nosotros hemos confiado en las sentencias de registro a lo largo de nuestra trayectoria de codificación. Sin embargo, hay una forma mejor de obtener toda esta información y más manteniendo el control, la flexibilidad y la personalización. Se llaman depuradores.

Vamos a aprender a utilizar estos depuradores en nuestro proyecto Next.js, para que no tengas que escribir otra declaración console.log nunca más.

Creando nuestro proyecto Next.js

Introduce el siguiente comando en el terminal:

npx create-next-app@latest nextjs-blog --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"

Procede introduciendo «y» en el terminal y, a continuación, inserta los siguientes comandos:

cd nextjs-blog
npm run dev

Esta debería ser la aplicación en funcionamiento en localhost:3000

Editar el archivo principal

Vamos a trabajar con la recuperación de datos de una API pública para ofrecerte una ilustración real y práctica del uso del depurador.

En este ejemplo, accederemos a datos de Star Wars, centrándonos en detalles sobre el icónico personaje, Luke Skywalker.

Para comenzar, abre y edita el archivo 'pages/index.js' e inserta el siguiente código:

import { useEffect, useState } from 'react';
import styles from '../styles/Home.module.css';

export default function Home() {
  const [character, setCharacter] = useState(null); // State to store the fetched character data

  useEffect(() => {
    // Define the API endpoint URL
    const apiUrl="https://swapi.dev/api/people/1/";

    // Fetch character data from the API
    fetch(apiUrl)
      .then((response) => {
        if (!response.ok) {
          throw new Error('Network response was not ok');
        }
        return response.json(); // Parse the response body as JSON
      })
      .then((data) => {
        setCharacter(data); // Update the state with the fetched character data
      })
      .catch((error) => {
        console.error('There was a problem with the fetch operation:', error);
      });
  }, []); // The empty dependency array ensures this effect runs only once when the component mounts

  return (
    <div className={styles.container}>
      {character && (
        <div>
          <h1>{character.name}</h1>
          <p>Height: {character.height} cm</p>
          <p>Mass: {character.mass} kg</p>
          <p>Hair Color: {character.hair_color}</p>
          <p>Skin Color: {character.skin_color}</p>
          <p>Eye Color: {character.eye_color}</p>
          <p>Birth Year: {character.birth_year}</p>
          <p>Gender: {character.gender}</p>
        </div>
      )}
    </div>
  );
}

Este debería ser el resultado esperado:

Edición del archivo launch.json

La configuración en el archivo launch.json es para depurar una aplicación Next.js usando Google Chrome como objetivo de depuración.

He aquí una breve explicación de lo que hace cada tecla:

  • "name": El nombre de esta configuración de depuración, que se mostrará en el desplegable del depurador de Visual Studio Code.
  • "tipo": Especifica el tipo de depurador, que en este caso es «chrome» para depurar en Google Chrome.
  • "request": Indica que queremos «lanzar» una nueva instancia de Google Chrome para depurar.
  • "url": La URL donde se está ejecutando tu aplicación Next.js en modo desarrollo (normalmente http://localhost:3000).
  • "webRoot": El directorio raíz de tu proyecto Next.js donde se encuentra tu código fuente.

El depurador utiliza esta ruta para mapear correctamente tus archivos de código fuente para propósitos de depuración.

En este ejemplo, se establece en ${workspaceFolder}/nextjs-blog, asumiendo que tu proyecto Next.js está en una carpeta llamada nextjs-blog dentro de tu carpeta workspace.

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Next.js: Chrome",
        "type": "chrome",
        "request": "launch",
        "url": "http://localhost:3000",
        "webRoot": "${workspaceFolder}/nextjs-blog"
      }
    ]
  }

Ahora, para utilizar el depurador, haz clic en la pestaña depurador de la barra lateral de VSCode y haz clic en la opción Ejecutar depurador:

Incorporaremos puntos de interrupción en lugares específicos de nuestro código para controlar el flujo de la aplicación. Para establecer un punto de interrupción, sitúa el cursor sobre una línea y aparecerá un tenue punto rojo a la izquierda del número de línea. Al hacer clic en él, se volverá de un rojo vibrante, lo que significa que se ha establecido un punto de interrupción en esa línea.

Aquí tienes una lista de los puntos de interrupción que hemos incluido en nuestro código base.

Barra de herramientas del depurador

A continuación, ejecuta el depurador. Aparecerá una barra de herramientas del depurador:

Estas funciones son las siguientes:

Iniciar depuración (F5):

  • Inicia el proceso de depuración.
  • Inicia la aplicación en modo de depuración.
  • Permite establecer puntos de interrupción y recorrer el código.

Pausa (botón Pausa o Ctrl+Break):

  • Pausa la ejecución de su programa.
  • Útil para detener la ejecución e inspeccionar el estado actual y las variables.

Avanzar (F10):

  • Avanza el depurador a la siguiente línea de código.
  • Si la línea actual contiene una llamada a función, ejecutará la función completa y pasará a la siguiente línea en el contexto actual.

Paso al interior (F11):

  • Si la línea actual contiene una llamada a función, entra en la función e inicia la depuración dentro del contexto de esa función.
  • Le permite sumergirse en los detalles de las llamadas a funciones.

Salir (Mayús+F11):

  • Cuando estés dentro de una función y quieras volver a la función llamante, utiliza este botón.
  • Continúa la ejecución hasta que salga de la función actual y vuelva a la función de llamada.

Estos botones son esenciales para controlar el flujo de tu sesión de depuración, inspeccionar variables y navegar a través de tu código para identificar y solucionar problemas.

Visualización de la consola de depuración

Aquí está la consola de depuración, que es mucho mejor que las sentencias console.log que hemos estado utilizando hasta ahora:

Aquí, se puede ver que, podemos ver datos mucho más detallados de lo que la variable de respuesta consiste en lo que no habríamos sido capaces de ver por simple console.logging.

A continuación, pulsa el botón «Continuar(F5)»:

El depurador avanzará hasta el siguiente punto de interrupción, revelando el contenido de la variable ‘character’ y los datos específicos que contiene. Estamos extrayendo solo los ‘valores’ deseados para mostrarlos en nuestra página web.

Para continuar, puede hacer clic en el botón ‘Continuar’, que navegará a través de los puntos de interrupción restantes.

Para concluir nuestra sesión de depuración, pulsa

En Grupo MET podemos ayudarte a implementar esta y muchas mas herramienta para optimizar tu trabajo. ¡Contáctanos para saber más!

Contactanos