Depuración: reglas indispensables para resolver incluso los problemas más difíciles de encontrar (2004)
(dwheeler.com)-
Reseña de David A. Wheeler
- David J. Agans, autor de "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems", considera este libro una obra indispensable de depuración para desarrolladores de software y hardware.
- El libro explica principios fundamentales para encontrar y corregir errores, en lugar de centrarse en tecnologías específicas, y es especialmente útil para desarrolladores principiantes e intermedios.
- Está organizado en torno a las "nueve reglas" e incluye explicaciones de cada regla y cómo aplicarla.
-
Las nueve reglas
- Entender el sistema: es importante leer el manual, comprender los fundamentos y aprovechar bien las herramientas.
- Provocar el fallo: es importante reproducir de nuevo el fallo y encontrar la causa de los bugs intermitentes.
- Dejar de pensar y observar: primero hay que recopilar datos y no depender de suposiciones.
- Divide y vencerás: resolver el problema acotándolo y usar patrones de prueba fáciles de identificar.
- Cambiar una sola cosa a la vez: aislar los elementos clave y modificar las pruebas una por una.
- Mantener un registro de auditoría: registrar lo que se hizo y los resultados, entendiendo que todos los detalles pueden ser importantes.
- Revisar el enchufe: cuestionar lo que se da por sentado y poner a prueba las herramientas.
- Obtener una nueva perspectiva: es importante conseguir nuevas ideas y escuchar la voz de la experiencia.
- Si no se corrigió, no está arreglado: comprobar si el problema realmente se resolvió y corregir la causa raíz.
-
Ventajas y desventajas del libro
- El libro se enfoca en los principios básicos de la depuración, lo que lo distingue de otros libros técnicos.
- Incluye consejos prácticos sobre cómo manejar problemas intermitentes.
- En el apéndice del libro hay enlaces a sitios web relacionados y para descargar un póster.
- Como punto débil, no hay una lista resumida en una sola página con todas las reglas y subreglas, y faltan consejos concretos sobre tecnologías específicas.
-
Conclusión
- Este libro es útil para aprender o repasar los principios fundamentales de la depuración, y ayuda tanto a principiantes como a expertos.
- David A. Wheeler lo recomienda ampliamente y enfatiza la importancia de los principios básicos.
1 comentarios
Opiniones de Hacker News
La tentación de corregir código con bugs es grande, pero es más fácil romper código que funciona que arreglar código roto. Como en el ejemplo de las luces de Navidad, es efectivo empezar con un ejemplo mínimo que funcione para encontrar el problema
Al resolver problemas, lo importante es no entrar en pánico. Se necesita pensar con claridad, y un buen gerente brinda apoyo para que uno pueda concentrarse en resolver el problema
git bisectes útil para encontrar el commit que causó un problema entre varios commits. Es especialmente útil para localizar problemas rápidamente en bases de código grandesEs importante entender el sistema, pero leer todos los manuales no es realista. Se necesita un enfoque práctico
Es importante editar el archivo correcto en la máquina correcta
Libros recomendados para desarrollar una mentalidad de resolución de problemas:
Reglas adicionales:
Hay que agregar el bug a CI como una prueba para evitar regresiones. Hay que verificar que CI falle antes de la corrección y pase después
El trabajo no termina después de depurar. Para cada bug, hay que hacer tres preguntas:
Es importante reproducir el problema con la configuración mínima posible. En la mayoría de los casos, así se puede encontrar el bug. Dividir el código por la mitad para encontrar exactamente qué parte está mal es efectivo