¿Qué es la depuración de pato de goma?
Hay muy pocas cosas que se sientan peor que ejecutar su programa por enésima vez solo para saber que todavía no se inicia. Incluso los mejores programadores saben cómo es.
Estás mirando un bloque de código que has estado cincelando durante horas. Esa sintaxis parece correcta, su espaciado es consistente, ha nombrado sus variables apropiadamente … entonces, ¿qué pasa?
Tal vez necesite un nuevo método para depurar. Y te sorprendería descubrir que una de las formas probadas y verdaderas de hacerlo, por extraño que parezca, involucra un juguete de la variedad de la bañera.
¿Qué es la depuración de pato de goma?
Esto se explica mejor a través de una pequeña historia. Imagínese esto: usted es un programador que trabaja con un equipo de personas. Estás haciendo tu trabajo diario, codificando lo que sea que necesites codificar, y luego te encuentras con un problema. Por alguna razón, el programa no funciona como debería.
Entonces decide caminar por el pasillo y decirle a su colega que está lidiando con un insecto obstinado. Ellos aceptan ayudarlo y preguntarle qué es exactamente lo que está mal. Empieza a explicar el problema en detalle y descubre que, en medio de su explicación, ha encontrado una solución.
En realidad, esto sucede en el mundo real con más frecuencia de lo que cree. Quizás se pregunte qué tiene que ver todo eso con los patitos de goma. Bueno, podrías haber confiado en un amigo de plástico amarillo (o cualquier objeto inanimado), en lugar de molestar a otra persona.
¿La mejor parte? Puede encontrar consuelo al saber que su pato no lo juzgará por su perorata tan larga. Si necesita depurar con frecuencia, consulte esta lista de los errores de programación y codificación más comunes .
¿De dónde viene el término "depuración del pato de goma"?
"Depuración del pato de goma" es una referencia a una historia en un libro de programación llamado The Pragmatic Programmer: From Journeyman to Master por Andrew Hunt y David Thomas. En él, un programador llevaría un pato de goma y depuraría su código al obligarse a explicarlo, línea por línea, al pato.
¿Por qué funciona la depuración de patitos de goma?
A menudo, al describir lo que se supone que debe hacer el código, observa lo que realmente hace el código y, posteriormente, encuentra dónde las cosas no se alinean. Por eso se dice que enseñar una materia es una de las mejores formas de aprenderla. Tienes que evaluar los problemas desde diferentes perspectivas para ayudar a otra persona a comprender, lo que te ayuda a comprender.
La parte más importante de utilizar este método es su compromiso con él. Sí, puede parecer muy tonto tener una conversación tan profunda y unilateral. Pero dedicar tanto esfuerzo a guiar a otra persona (real, imaginaria o hecha de goma) a través de su problema es exactamente lo que hará que el problema aparentemente se resuelva solo.
Este método funciona muy bien porque la mayoría de los errores en el código son causados por la falta de información e instrucciones explícitas para el software. Las computadoras no pueden entender instrucciones vagas. Al asumir que su pato no sabe nada sobre su problema, se ve obligado a describir todos los detalles esenciales. Resulta que no entendiste todo tan bien como pensabas.
¿Cómo utilizo el método del pato de goma?
Solo hay tres pasos simples para esquivar el caucho:
- Suponga que su pato no sabe absolutamente nada sobre su problema. Exprese el problema, cómo están las cosas en este momento y qué está tratando de lograr en su lugar.
- Explique el flujo de las cosas. ¿Que pasó? Repase cada paso del proceso sin perderse un solo detalle.
- Llega a una epifanía.
Aplicar el método a un problema de la vida real
Este práctico método fue acuñado por programadores, pero definitivamente se puede aplicar a problemas fuera de la programación. ¿Cómo? Aquí, construyamos otro escenario imaginario: acabas de comprar un refrigerador nuevo para tu casa.
Hace que le envíen el refrigerador nuevo a su casa y lo coloque en su lugar en la cocina. Transfiere todos los productos de su refrigerador viejo al interior del nuevo y se deshace del primero. El día termina y te vas a la cama. Cuando se despierta a la mañana siguiente, abre la puerta del frigorífico y descubre que toda la comida se ha echado a perder durante la noche.
Estás furioso, por supuesto, y comienzas a desahogarte con un miembro de la familia. "¿Cómo pudo haber sucedido esto? Lo pagué, lo traje de vuelta y moví todo dentro de esta cosa que, cuando se enciende, se supone que tiene un increíble control de temperatura"
Oh. Olvidaste enchufar la maldita cosa.
Eso es un poco vergonzoso, pero al menos ahora conoces el problema. Eso es porque te tomaste el tiempo para pensar en toda la situación de principio a fin. A veces, cuando está tan familiarizado con un proceso, no nota que los problemas más obvios pasan a su lado.
Aplicar el método al código
Por ejemplo, repasaremos algunos ejemplos de código Python. Sin embargo, como hemos demostrado, puede usar su confiable patito de goma para resolver todo tipo de problemas diferentes. El método se puede aplicar a cualquier lenguaje de programación en el que esté trabajando.
Queremos imprimir los números del uno al cinco. Entonces, continúe y escriba todo ese código:
for x in range(5):
print(x, end=" ")
Output: 0 1 2 3 4
¿Eh? Eso es raro. Le pidió al compilador que imprimiera un rango de cinco números. Cual es el problema aqui? Repasemos todas las posibilidades. Su sintaxis es correcta ya que el código se ejecutó sin errores. No es que le falten argumentos, porque los argumentos de inicio y paso son opcionales …
Aférrate. La función de rango devuelve una secuencia de números, se incrementa en uno (de forma predeterminada) y se detiene antes de un límite superior que establezca. Pero, ¿dónde comienzan los rangos? En Python, los rangos comienzan en cero a menos que se especifique.
Ahora, sabes que se supone que debes escribir.
for x in range(5):
print(x+1, end=" ")
Output: 1 2 3 4 5
Su compañero de programación poco probable
Si bien no puede decirle exactamente dónde se equivocó en su código, los patitos de goma han ayudado a los programadores en todas partes. La próxima vez que se encuentre con un error al programar, intente agarrar un patito de goma (o algún otro objeto o persona que actúe como tal) y vea si este método de resolución de problemas funciona para usted.
¿Quién hubiera pensado que los patos de goma podrían ser más que un juguete de baño?