Curso de debugging

Yechezk

El curso es impartido por Andreas Zeller en la palataforma de Udemy, aunque ya no este disponible para su descarga nos lo dieron como material en el grado superior DAW dual. Comparado con otros materiales encontrados por ahí, de lo mejorcito.

El temario es:

  • 0-Introduccion: 00:00:00 - 00:08:38
  • 1-How Debuggers Work: 00:08:39 - 01:04:23
  • 2-Assertions: 01:04:24 - 02:15:19
  • 4-Tracking Origins: 02:15:20 - 03:09:24
  • 6-Learning From Mistakes: 03:09:25 - 03:54:13
  • 7-Recap and More Stories: 03:54:15 - 04:10:22

La carpeta viene con archivos .srt que contiene los subtítulos a Español del curso. Abrís el VLC con los dos archivos seleccionados y ya se activaran por sí solos.

Curso de debugging
---------------------------------------
Lo que viene a continuación es simplemente un breve resumen de la terminología que aparece durante el curso. Nunca viene mal.

Depurar un programa es el proceso de detectar y remover errores existentes o potenciales en el código.

Aunque cada experiencia de depuración es única, hay unos principios que se pueden aplicar durante el proceso:

  • Reconocer la existencia del bug
  • Aislar la fuente del bug
  • Identificar las causas del bug
  • Determinar una 'solución' para el bug
  • Aplicar la solución y testearla.

¿Qué es un bug? es un problema que desencadena un resultado indeseado. Ese problema no surge por arte de magia, todos los bugs son insertados por los propios programadores.

Definamos una función que recibiendo una palabra, añade un underscore entre cada caracter.

def añadir_underscore(palabra):
  nueva_palabra = "_"
  for i in range(len(palabra)):
         nueva_palabra = palabra[i] + "_"
  return nueva_palabra

print(añadir_underscore("hello")

Output

o_

No es el resultado que teníamos en mente para la salida de nuestra función. Nos hemos encontrado un error en nuestro código que imposibilita la salida esperada por nosotros.

for i in range(len(palabra)):
         nueva_palabra = palabra[i] + "_"

El error se encuentra en este fragmento de código, cuando recorremos la palabra en su ultimo recorrido unicamente guardamos la ultima letra de la palabra añadiendole un underscore.

El error al ser identificado por el programador o los testers, para a ser llamado defecto que se puede resumir en una diferencia entre el resultado esperado y el resultado obtenido.

3
overflow
Lo que los verdaderos expertos usan
spoiler
19
JuAn4k4

En realidad depurar sirve para entender que hace el programa ya que el modelo mental necesario para hacerlo solo leyendo el código es lo suficientemente complejo como para sobrepasarte.

Yo suelo empezar leyendo el código y así encuentro bugs, normalmente más de uno.

Usuarios habituales

  • JuAn4k4
  • overflow
  • Yechezk