Vamos a programar #34 - Depurando código de javascript.

Hola de nuevo a todos, el día de hoy vamos a ver una parte esencial para cualquier persona que se dedica a programar.

Cuando se crea un código nuevo, este siempre estará propenso a errores, está más que garantizado, que sin importar que tanto tiempo lleves en la programación, siempre surgirán errores. Algunos de ellos serán tan simples cómo: "olvide una coma", otros no tan obvios y solo surgirán al momento que se ejecute el código.
Para estos caso, en la mayoría de entornos de desarrollo siempre dispondremos de una herramienta que se encargara de dejarnos ver que es lo que está pasando en determinado punto del programa.

Suponiendo que queremos ver que está pasando en determinado punto del programa, en javascript; existe la palabra reservada "debugger", cuando la ejecución del programa se encuentra con esa palabra, la ejecución se detendrá y mostrará en la consola los datos correspondientes a las variables.

Para que la ejecución del depurador ocurra, el modo desarrollado debe de estar activado, para hacerlo en Google Chrome, basta con oprimir la tecla F12 (y se abrirá un ventana incrustada cómo en la primer imagen). En lo personal, prefiero usar Firefox, para acceder al modo desarrollador, basta con hacer clic en menú>Desarrollador > Depurador. Para el caso de Opera, debes de hacer clic en menú>Desarrollador>Herramientas de desarrollo.

En la siguiente imagen se muestra las partes importantes de la ventana de depuración:

El area con un recuadro rojo (1), son los controles que no servirán para controlar el flujo del código, existen cuatro botones y cada uno hace en orden de aparición lo siguiente:

  • Continua con el flujo normal del programa; es decir: ejecuta el programa hasta salir de la función o parte de código en la cual se invocó el depurador.
  • Las siguientes sirven para avanzar de "uno por uno", cada vez que se oprima, el programa avanzará una linea en el programa, si al momento de hacerlo se encuentra con la llamada a una función, el cursor se desplazará hasta ella y continuará la ejecución en la parte donde empieza, si se continua, avanzará sobre las lineas de la función y cuando acabe, volverá a donde se encontraba pero avanzando a la siguiente linea después de la ejecución de la función. Ademas al hacer esto, en la parte enmarcada en verde (2) todas las variables que se creen o cambien se mostraran ahí.
  • El último botón ejecutara hasta el final del bloque de código y al igual que el anterior, si hay cambios en las variables, se mostrarán en el panel Variables.
Todo esto sirve para revisar paso a paso lo que sucede en cada variable al momento de que se realiza la ejecución. Supongamos que un días llegas ebrio y decides agregar unas cuantas lineas de código, cuando recuperes tu sobriedad, probablemente puedas identificar la mayor parte del código que agregaste, pero si por alguna razón, una linea pasa desapercibida; pueden ocurrir muchos dolores de cabeza (y no lo digo cómo anécdota).

Cuando los errores se detectan, que es lo que se debe de hacer? usualmente los errores que se encuentren, se mostraran en un apartado llamado "consola web"


Por cada error habrá una pequeña descripción acerca de este, en el caso de la imagen, Nos dice que hay un error en la linea 183; nos dice que al tratar de obtener un elemento por su ID, este nos devolvió "NULL", eso puede significar que el objeto que estamos tratando de obtener no existe, pero Nosotros sabemos que si está, al revisar la linea vemos que el código es: "document.getElementById('ResulT').value = Salida;", al revisar los objetos que creamos en el formulario vemos que no hay ningun elemento que tenga esa ID y el mas cercano es "Result". Entonces eso significa que cometimos un error al escribir el ID del objeto que queríamos y en su lugar, mandamos a llamar a otro que no existe. Al cambiar el ID por el correcto, el error desaparece.

Con esas herramientas resultará mas sencilla la tarea de eliminar bug's de nuestro código.
Por el momento es todo, en próximos post, veremos cómo es el proceso de depuración en otras plataformas.

Los leo luego.

No hay comentarios.