Un patrón común para localizar un error sigue esta secuencia de comandos:
- Observe la rareza, por ejemplo, no hay salida o un programa que cuelga.
- Localice el mensaje relevante en el registro o en la salida del programa, por ejemplo, "No se pudo encontrar Foo". (Lo siguiente solo es relevante si esta es la ruta tomada para ubicar el error. Si hay un seguimiento de la pila u otra información de depuración disponible, eso es otra historia).
- Localice el código donde se imprime el mensaje.
- Depure el código entre el primer lugar donde Foo ingresa (o debería ingresar) la imagen y el lugar donde se imprime el mensaje.
El tercer paso es donde el proceso de depuración a menudo se detiene porque hay muchos lugares en el código donde se imprime "No se pudo encontrar Foo" (o una cadena con plantilla Could not find {name}
). De hecho, varias veces un error ortográfico me ayudó a encontrar la ubicación real mucho más rápido de lo que lo haría de otra manera: hizo que el mensaje fuera único en todo el sistema y, a menudo, en todo el mundo, lo que resultó en un importante motor de búsqueda. inmediatamente.
La conclusión obvia de esto es que deberíamos usar identificadores de mensaje únicos a nivel mundial en el código, codificándolos como parte de la cadena del mensaje, y posiblemente verificando que solo haya una ocurrencia de cada identificador en la base del código. En términos de capacidad de mantenimiento, ¿qué piensa esta comunidad que son los pros y los contras más importantes de este enfoque, y cómo implementaría esto o de otra manera garantizaría que la implementación nunca sea necesaria (asumiendo que el software siempre tendrá errores)?