← Código en el que puedes confiar ETAPA 03 · 28 MIN

Depurar como un experimento

Pasa de un síntoma a una explicación reproducible con observaciones controladas.

Abrir en el laboratorio ↗

AL TERMINAR, PODRÁS

  • Reducir una falla a un caso repetible
  • Formular una hipótesis de depuración que se pueda refutar
  • Distinguir la causa raíz de un síntoma posterior
Depurar es un ciclo de experimentos pequeños; el arreglo termina con un test que lo habría detectado.

Descripción del diagrama: Reproducir → Hipótesis; Hipótesis → Experimento; Experimento → Observar; Observar → Hipótesis (refinar); Observar → Arreglo + test (confirmada)

Reproduce antes de reparar

Un reporte de error suele ser un síntoma: «a veces desaparecen trabajos».

Registra la entrada, el resultado observado, el resultado esperado y el entorno relevante. Busca el ejemplo repetible más pequeño que conserve la falla. Quitar la preparación irrelevante reduce las causas posibles.

Si la falla depende de la concurrencia o del tiempo, registra el orden de los eventos en lugar de suponer que es aleatoria. Una reproducción es un instrumento de laboratorio: te permite comparar explicaciones y verificar una reparación sin depender de la memoria ni de la confianza.

Haz una pregunta que el programa pueda responder

Una hipótesis útil hace una predicción. «Quitamos el trabajo antes de registrar que se completó, así que una caída entre esos pasos lo pierde» predice una ventana de falla concreta.

Pon un breakpoint (punto de interrupción), inspecciona el estado o instrumenta esa frontera. Cambia una sola variable relevante a la vez. Lee el traceback desde la excepción hacia atrás por la cadena de llamadas e inspecciona los valores reales, no los que esperabas.

Los logs (registros) pueden revelar una historia que el depurador no ve, mientras que el depurador puede inspeccionar detalles que nunca se registraron.

Cierra el ciclo

Cuando entiendas la causa, crea una prueba (test) de regresión que demuestre el comportamiento roto.

Aplica la corrección coherente más pequeña y verifica que la prueba falla con el comportamiento antiguo y pasa con el corregido. Luego revisa las suposiciones cercanas: ¿el error estaba aislado o el mismo patrón aparece en otros lugares? En un incidente de producción, una mitigación rápida puede ir antes de la explicación completa, pero nómbrala con honestidad.

Reiniciar un worker puede restaurar el servicio sin resolver por qué se quedó detenido.

ERROR FRECUENTE

Hacer varios cambios especulativos a la vez destruye la evidencia que necesitas para saber cuál importó.

INTÉNTALO TÚ

Un worker saca un trabajo, ejecuta su efecto y luego guarda que se completó. Enumera los resultados observables si el proceso cae antes y después de cada paso.

COMPROBACIÓN DE RECUERDO / APLICA LA IDEA

Decide en el laboratorio.

El checkpoint de dos preguntas, tus notas y tu progreso guardado están en el laboratorio. Gratis y sin cuenta.

Abrir en el laboratorio ↗

CONÉCTALO CON RELAY

Introduce una falla controlada en Relay, crea una reproducción mínima, registra la explicación causal y agrega una prueba de regresión.

VE A LA FUENTEPython: depurador pdb ↗Python: traceback ↗Las fuentes están en inglés.