Del traductor. La depuración de software para muchos codificadores es una tarea aburrida y rutinaria. Pero aún así es simplemente imposible hacerlo sin depurar. Esta publicación es una traducción del
artículo original de Nick Karnik, en el que comparte sus propias observaciones sobre errores y deficiencias en la depuración, que se encuentran no solo entre los programadores novatos, sino también entre los profesionales.
Todos escribimos código que a veces, desafortunadamente, se niega a funcionar. Esto es normal, solo parte del proceso de desarrollo. Si el programa da un error, a veces simplemente no sabes qué hacer a continuación y cómo solucionarlo. No se preocupe: todos los problemas están resueltos e incluso los codificadores más experimentados tienen errores.
Skillbox recomienda: Curso anual práctico "Desarrollador PHP desde cero a PRO" .
Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".
Para minimizar los errores, es necesario desarrollar habilidades de programación y depuración.
Ellos mismos se dividen en dos tipos: lógicos y sintácticos.
Los errores de desarrollador más comunes
Faltan mensajes de errorUno de los escenarios más difíciles es cuando la aplicación falla y no hay un mensaje sobre la razón de lo que sucedió. Para poder solucionar el problema en el código, debe comprender si ocurre durante el inicio o si ya está en el proceso. Puede averiguarlo agregando el registro de mensajes de la aplicación al comienzo del código.
Si no hay registro, lo más probable es que el programa se bloquee durante la carga, incluso antes de que algo comience a escribirse en el registro.
Si tiene un registro de mensajes, revíselo y encuentre la posible causa del bloqueo. Para limitar la búsqueda, vale la pena hacer que el programa registre los eventos principales en el proceso de su trabajo. En este caso, el problema será más fácil de encontrar.
Mensajes de error de fobiaSi hablamos de frontend, los errores generalmente se muestran en la aplicación, en la interfaz de usuario o en la consola del desarrollador. A veces, los mensajes se pueden ver en el backend utilizando el terminal o en el registro de eventos. Independientemente del tipo de error, los principiantes tienen miedo de tales mensajes y ni siquiera los leen.
Esta es la razón principal por la que algunos desarrolladores tardan tanto en depurar.
En primer lugar, es necesario estudiar el error, analizando todo de la manera más exhaustiva.
Falta de voluntad para estudiar los registros del sistemaAlgunos programas escriben archivos de registro o generan un registro de eventos. Todo esto es solo un depósito de información útil. Si no puede encontrar una indicación exacta de la causa del error en el registro de eventos, intente buscar mensajes sobre la falla o, por el contrario, el lanzamiento exitoso de algo (módulo, servicio). Esto ayudará a comprender la causa del error.
Falta el registro de seguimientoEl rastreo ayuda a rastrear el proceso del programa y trabajar con datos. Grabar mensajes de rastreo mientras el software se está ejecutando simplifica el proceso de depuración. El registro de seguimiento es una forma sencilla de aprender cómo funciona su aplicación.
Incapacidad para trabajar por etapas.Muchos desarrolladores escriben grandes piezas de código, después de lo cual se compilan y prueban como parte de la aplicación. Pero vale la pena recordar que el tiempo para buscar errores en el código es proporcional a su volumen.
Si hay muchos cambios, tendrá que pasar mucho tiempo buscando un problema que aparece de repente. Es mejor trabajar por etapas. Realice pequeños cambios, compile el código, pruebe la aplicación y luego repita todo esto. Cuando implementa cambios en pequeñas iteraciones, esto finalmente acelera el proceso de creación de la aplicación. Si algo no funciona, puede ver rápidamente por qué.
Después de escribir mi código, a menudo lo reviso para simplificar la escritura.
Falta de voluntad para realizar pruebas automáticasLas pruebas unitarias y la automatización de prueba de extremo a extremo le permiten identificar posibles errores a medida que ocurren. Una de las causas de los errores es que los desarrolladores refactorizan el código antes de que se pruebe a fondo, es decir, los cambios no se prueban automáticamente.
Incapacidad para trabajar con el método de excepciónSi no puede determinar la causa raíz de su problema, debe usar el método de excepción. Puede comentar nuevos bloques de código para verificar si el error desaparece. Esto ayuda a diagnosticar el problema.
Durante la depuración, puede formular una hipótesis específica e intentar probarla o refutarla utilizando el método propuesto anteriormente.
Copiar y pegar con StackOverflowA menudo, los desarrolladores copian y pegan el código de StackOverflow sin tener una idea clara de lo que está haciendo la sección copiada. Tales acciones tienen una serie de consecuencias negativas, algunas de las cuales están implícitas. Asegúrese de prestar atención a lo que agrega, intente comprender qué funciones son responsables de la ejecución del código insertado.
Por cierto, a menudo cuando hago una pregunta en StackOverflow, la respondo un poco más tarde, porque estoy reflexionando sobre un problema durante el proceso de escritura.
Lo mismo sucede durante una discusión de un problema en su equipo. Usted mismo encuentra una solución a su pregunta, simplemente porque está pensando en la causa del problema.
Renuencia a volver a inspeccionar el códigoUno de los métodos de depuración más exitosos que conozco es estudiar su código, una y otra vez. En algunos casos, escribir un código desde cero ayuda.
Incapacidad para rastrear llamadas a funcionesLas llamadas a funciones de aprendizaje en su aplicación a veces también ayudan. Solo necesita verificar las variables y sus valores esperados. En el proceso, puede encontrar áreas problemáticas en su programa que conducen a su comportamiento extraño.
Ignorancia del depuradorDefinitivamente necesita aprender a usar el depurador. Esta es la mejor inversión de tiempo. Todos los IDE vienen con potentes herramientas de depuración que funcionan aproximadamente de la misma manera. Aprenda estas herramientas y resolverá la mayoría de sus problemas al escribir código.
Skillbox recomienda: