logo
Python

Depurando como un pro: porque llenar un script con prints es cutre

Javi Romero

  • 9 de Octubre de 2016, 10:00 - 10:40
  • Sala PSF
  • Idioma: es

Titulo

Depurando como un pro: porque llenar una función de prints es cutre

Categoría

Desarrollo

Duración

30 minutos

Descripción

Todos sabemos que durante la ejecución de un script podemos conocer el contenido de una variable usando un útil print(current_passenger). ¿Y qué podemos hacer cuando ocurre un error que no esperábamos? ¡Ahá! más prints: ``` if not finished and remaining: print("Enters the if!")

if remaining % 2 == 0:
    print("It's odd!!")

    if remaining not in expected:
        print("WTF!")
        print(remaining, expected)

```

¿Te resulta familiar ese patrón? Entonces sta charla te va a encantar. Vamos a utilizar varias herramientas súper sencillas para depurar el código y entender qué está pasando durante la ejecución.

Audiencia

Todo aquel que spamee prints para entender qué pasa en el código.

Nivel de la audiencia

Básico

Objetivo

Los asistentes a la charla descubrirán la depuración de código eficiente y aprenderán que es su mejor amigo a la hora de entender qué ocurre durante la ejecución. Al salir de la charla dispondrán de una herramienta imprescindible para el resto de sus días con Python.

Descripción detallada

El modo más rudimentario y sencillo de entender qué ocurre en nuestro código es utilizar un print(). Es rápido de escribir, es sencillo y para casos puntuales es eficaz. Pero no es la forma más eficiente si no sabemos el punto exacto en el que la ejecución deja de hacer lo que esperamos de ella.

Desde que ocurriera el primer error de segmentación en C existen una serie de aplicaciones llamadas depuradores que permiten examinar de forma detallada la ejecución del código y esta charla es una breve introducción a ellos, a su uso y a herramientas adicionales que utilizar con ellos.

Repasaremos los diferentes depuradores disponibles, funciones del lenguaje útiles durante la depuración y cómo se utilizan en un caso real para buscar y corregir un error.

Esquema de la charla

  1. ¡Hola!
  2. Entendiendo dónde estamos
    1. print
    2. print print
    3. print print spam print
  3. Depuradores
    1. Para qué sirven
    2. Opciones en Python
    3. pdb
    4. pudb
    5. ipdb
  4. Ipdb
  5. Funciones y estrategias útiles
    1. locals() & globals()
    2. vars() & dir()
    3. repr()
  6. Manos a la obra: resolviendo un bug
  7. ¿Preguntas?

Acerca de

Ingeniero de Software en Mozio