DEPURACION NODE JS
1) Identifica un error en tu programa.
2) Encuentra donde esta el error de tu código.
3) Analiza por que ocurre el error.
4) Arregla el error.
5) Valide que su solución funcione.
En este caso realizaremos un ejemplo sobre la serie de fibonacci que se encuentra con un error y al final de este proceso lograremos arreglar ese error.
PASOS
1) Crearemos un archivo en llamado fibonacci.js y pondremos el siguiente ejercicio
EJERCICIO SIN CORRECCIÓN
function fibonacci(n) {
let n1 = 0;
let n2 = 1;
let sum = 0;
for (let i = 2; i < n; i++) {
sum = n1 + n2;
n1 = n2;
n2 = sum;
}
return n === 0 ? n1 : n2;
}
const result = fibonacci(5);
console.log(result);
2) Ingresaremos el siguiente código en nuestra terminal.
node fibonacci.js
3) Iniciaremos el depurador incorporado con el siguiente código.
node inspect fibonacci.js
Una vez hecho esto deberías ver el indicador del depurador mostrado, ahora usaremos el comando S hasta que el punto de ejecución se encuentre al comienzo de la función fibonacci como te lo presento ahora.:
break in fibonacci.js:2
1 function fibonacci(n) {
> 2 let n1 = 0;
3 let n2 = 1;
4 let sum = 0;
debug>
4) Ahora podemos verificar en este punto el valor del parámetro n pasado en la función usando el comando:
exec n
5) Deberías ver que en la consola se muestra 5. Vuelve a ingresar usando el comando S hasta que el punto de ejecución este al comienzo del ciclo como te lo muestro a continuación
break in fibonacci.js:7
5
6 for (let i = 2; i <= n; i++) {
> 7 sum = n1 + n2;
8 n1 = n2;
9 n2 = sum;
debug>
6) Ahora agregaremos un punto de interrupción aquí para que podamos movernos rápidamente por las interacciones de el bucle, para eso escribiremos el siguiente código.
sb()
7) Avanzaremos a la siguiente iteracion del bucle con el comando C
Podemos verificar el estado actual de iteracion con el siguiente comando
exec [i, sum]
Deberias ver en la consola [ 3,1] como el codigo no ha actualizado el valor de sum la iteracion actual (3), actualmente representa el numero de Fibonacci para la iteracion anterior:
fibonacci(2) = fibonacci(0) + fibonacci(1)
= 0 + 1
= 1
Parece que nuestro programa se ejecuta correctamente hasta ese punto por lo que continuaremos con la siguiente iteracion del bucle con el comando C y verificaremos el estado nuevamente.
exec [i, sum]
Deberías ver en la consola [4,2] que es correcta nuevamente. Ahora estamos en el punto justo antes del numero que nos interesa (5), por lo que puede seer prudente avanzar paso a paso a través de esta iteracion, utilizando el comando S. Intentaremos alcanzar nuestro punto de ruptura anterior pero paso a paso.
Después de verificar la condición del bucle i < n , la ejecución de repente salto a la linea de retorno
¿QUE PASO ?
break in fibonacci.js:12
10 }
11
>12 return n === 0 ? n1 : n2;
13 }
14
Eso es todo, acabamos de encontrar nuestro error, en lugar de actualizar la suma para la iteracion 5 el codigo salto del bucle es por eso que obtuvimos el resultado de la iteracion anterior (3) en nuestra ejecucion inicial.
Agregaremos la condicion del bucle cambiando i < n a i <=n en el editor de código. Ahora puede salir del repurador con CTRL + D y ejecutar su programa nuevamente .
EJERCICIO HECHO YA LA CORRECCIÓN RESPECTIVA
function fibonacci(n) {
let n1 = 0;
let n2 = 1;
let sum = 0;
for (let i = 2; i <= n; i++) {
sum = n1 + n2;
n1 = n2;
n2 = sum;
}
return n === 0 ? n1 : n2;
}
const result = fibonacci(5);
console.log(result);
Una vez solucionado este error volveremos a ejecutar nuestro programa con el codigo
node fibonacci.js
Con esto el resultado en nuestra consola deberá ser 5 y hemos logrado arreglar nuestro error.
GRACIAS POR TU TIEMPO
NOTA: ADJUNTO IMAGENES DE MI TERMINAL DONDE REALICE EL MISMO PROCESO QUE YA DETALLE ANTES.
TERMINAL
FINNNNNNNNNNNNN
Comentarios
Publicar un comentario