~/VibeHandbook
PDF gratis

Capítulo 12 · 02

Una lista de verificación para depurar

Recorre estos pasos en orden. Saltar directamente a "arréglalo" es lo que hace que la IA dé vueltas en círculo.

  1. Reprodúcelo de forma confiable. Encuentra los pasos exactos que provocan el bug cada vez. Un bug que no puedes reproducir es uno que no puedes confirmar que arreglaste; solo estarás adivinando si desapareció. Si ocurre de forma intermitente, busca la variable que lo activa: una entrada específica, un estado de iniciada versus cerrada, una red lenta.
  2. Lee el error real. No lo hojees. El mensaje de error y la parte superior del stack trace suelen nombrar el archivo y la línea donde algo salió mal. Los principiantes a menudo se saltan la frase más útil de la pantalla porque parece intimidante.
  3. Reúne el contexto. Recopila el texto del error, el stack trace, el código relevante y una descripción de una línea de lo que esperabas.
  4. Dale a la IA el panorama completo. Pega todo lo anterior en un solo mensaje. Deja que forme una hipótesis.
  5. Formula una hipótesis, no un arreglo. Pregunta "¿qué podría estar causando esto?" antes de "arregla esto". Un arreglo equivocado sobre una teoría equivocada desperdicia tiempo, y a veces añade un segundo bug encima del primero.
  6. Añade registros (logging) para probar la hipótesis. Confirma qué está haciendo realmente el código antes de cambiarlo.
  7. Aplica búsqueda binaria al problema. Acota dónde se rompe cortando repetidamente por la mitad el área sospechosa.
  8. Arregla la causa raíz, no el síntoma. Asegúrate de que el arreglo aborde por qué se rompió, no solo el fallo visible.
  9. Verifica el arreglo y revisa si hay regresiones. Vuelve a ejecutar los pasos de reproducción. Luego asegúrate de que las funciones cercanas sigan funcionando; una regresión es cuando un arreglo rompe silenciosamente algo que solía funcionar, como parchar una fuga y reventar una tubería justo al lado.

Esa lista de verificación es en realidad un solo ciclo que recorres hasta que el bug desaparece. Cada casilla le pasa evidencia a la siguiente, y una verificación fallida simplemente te devuelve al ciclo con lo que aprendiste:

   ┌──────────────┐
   │  REPRODUCE   │  make it happen every time
   └──────┬───────┘
          ▼
   ┌──────────────┐
   │ READ ERROR + │  what does it actually say?
   │   GATHER     │  collect trace + code + context
   └──────┬───────┘
          ▼
   ┌──────────────┐
   │ HYPOTHESIS   │  "what could cause this?"
   └──────┬───────┘
          ▼
   ┌──────────────┐
   │ CONFIRM w/   │  add a log, get evidence
   │   LOGGING    │
   └──────┬───────┘
     wrong│  correct
   ┌──────┘ guess   ▼
   │            ┌──────────────┐
   │ (new       │  FIX root    │  not the symptom
   │  theory)   │    cause     │
   │            └──────┬───────┘
   │                   ▼
   │            ┌──────────────┐    fails / regression
   └────────────┤   VERIFY     │──────────┐
                │ + regressions│          │
                └──────┬───────┘          │
                       │ passes           │
                       ▼          ◀───────┘
                    ✔ DONE      (loop back around)

El orden no es arbitrario. Cada paso produce la evidencia que necesita el siguiente. Reproducir te da algo que leer; leer te da contexto que reunir; el contexto le da a la IA algo sobre lo que formular una hipótesis. Sáltate un paso y estarás alimentando al siguiente con un vacío.

¿Lo quieres sin conexión?

Descarga el libro entero en PDF o EPUB — gratis.