O que é o Rubber Duck Debugging?

Existem poucas coisas que parecem piores do que executar seu programa pela enésima vez apenas para descobrir que ele ainda não inicia. Até os melhores programadores sabem como é.

Você está olhando para um bloco de código que está esculpindo há horas. Essa sintaxe parece correta, seu espaçamento é consistente, você nomeou suas variáveis ​​apropriadamente … então o que acontece?

Talvez você precise de um novo método para depurar. E você ficaria surpreso ao descobrir que uma das maneiras testadas e comprovadas de fazer isso, estranhamente, envolve um brinquedo do tipo banheira.

O que é o Rubber Duck Debugging?

Isso é melhor explicado por meio de uma pequena história. Imagine o seguinte: você é um programador trabalhando com uma equipe de pessoas. Você está fazendo seu trabalho diário, codificando tudo o que precisa, e então se depara com um problema. Por alguma razão, o programa não está funcionando como deveria.

Então você decide andar pelo corredor e dizer ao seu colega que está lidando com um inseto teimoso. Eles concordam em ajudá-lo e perguntar o que exatamente está errado. Você começa explicando o problema em detalhes e descobre que, no meio de sua explicação, encontrou uma solução.

Isso realmente acontece no mundo real com mais frequência do que você pensa. Você deve estar se perguntando o que tudo isso tem a ver com patos de borracha. Bem, você poderia ter confiado em um amigo de plástico amarelo (ou qualquer objeto inanimado), em vez de perturbar outra pessoa.

A melhor parte? Você pode encontrar conforto em saber que seu pato não vai julgá-lo por seu discurso prolixo. Se você precisar depurar com frequência, verifique esta lista dos erros mais comuns de programação e codificação .

De onde vem o termo "Rubber Duck Debugging"?

"Rubber duck debugging" é uma referência a uma história em um livro de programação chamado The Pragmatic Programmer: From Journeyman to Master, de Andrew Hunt e David Thomas. Nele, um programador carregava um pato de borracha e depurava seu código, obrigando-se a explicá-lo, linha por linha, para o pato.

Por que o Rubber Duck Debugging funciona?

Muitas vezes, ao descrever o que o código deve fazer, você observa o que o código realmente faz e, subsequentemente, descobre onde as coisas não se alinham. É por isso que se diz que ensinar uma matéria é uma das melhores maneiras de aprendê-la. Você tem que avaliar as questões de diferentes perspectivas para ajudar alguém a entender, o que ajuda você a entender.

A parte mais importante de usar este método é seu compromisso com ele. Sim, pode parecer extremamente bobo ter uma conversa unilateral tão completa. Mas dedicar tanto esforço para conduzir outra pessoa (real, imaginária ou de borracha) através do seu problema é exatamente o que fará com que o problema pareça se resolver sozinho.

Este método funciona tão bem porque a maioria dos bugs no código é causada pela falta de fornecimento de informações e instruções explícitas ao software. Os computadores não entendem instruções vagas. Ao presumir que seu pato não sabe absolutamente nada sobre seu problema, você é forçado a descrever todos os detalhes essenciais. Acontece que você não entendeu tudo tão bem quanto pensava.

Como faço para usar o método do pato de borracha?

Existem apenas três etapas simples para o abaixamento de borracha:

  1. Suponha que seu pato não saiba absolutamente nada sobre o seu problema. Enuncie o problema, como as coisas estão acontecendo no momento e o que você está tentando realizar.
  2. Explique o fluxo das coisas. O que aconteceu? Reveja cada etapa do processo sem perder um único detalhe.
  3. Chegue a uma epifania.

Aplicando o Método a um Problema da Vida Real

Este método prático foi cunhado por programadores, mas pode definitivamente ser aplicado a problemas fora da programação. Quão? Aqui, vamos construir outro cenário imaginário: você acabou de comprar uma geladeira nova para sua casa.

Você recebe a nova geladeira enviada para sua casa e a coloca em seu lugar na cozinha. Você transfere todas as mercadorias de sua geladeira velha para a nova e se livra da anterior. O dia termina e você vai para a cama. Ao acordar na manhã seguinte, você abre a porta da geladeira e descobre que toda a comida estragou durante a noite!

Você está furioso, é claro, e começa a desabafar com um membro da família. "Como isso pode ter acontecido? Eu paguei, trouxe de volta e movi tudo dentro dessa coisa que, quando ligada, deveria ter um controle de temperatura incrível-"

Oh. Você se esqueceu de conectar a maldita coisa.

Isso é um pouco embaraçoso, mas pelo menos você conhece o problema agora. Isso porque você parou para pensar em toda a situação do início ao fim. Às vezes, quando você está tão familiarizado com um processo, não percebe que os problemas mais óbvios passam por você.

Aplicando o Método ao Código

Por exemplo, veremos alguns exemplos de código Python. Porém, como demonstramos, você pode usar seu confiável pato de borracha para resolver todos os tipos de problemas diferentes. O método pode ser aplicado a qualquer linguagem de programação em que você esteja trabalhando.

Queremos imprimir os números de um a cinco. Então, você vai em frente e digita todo o código:

 for x in range(5):
print(x, end=" ")
Output: 0 1 2 3 4

Hã. Isso é estranho. Você pediu ao compilador para imprimir um intervalo de cinco números. Qual é o problema aqui? Vamos examinar todas as possibilidades. Sua sintaxe está correta, pois o código foi executado sem erros. Não é que você esteja perdendo algum argumento, porque os argumentos de início e etapa são opcionais …

Espere. A função de intervalo retorna uma sequência de números, incrementos em um (por padrão) e para antes de um limite superior definido por você. Mas onde começam os intervalos? Em Python, os intervalos começam em zero, a menos que seja especificado.

Agora, você sabe que deve escrever.

 for x in range(5):
print(x+1, end=" ")
Output: 1 2 3 4 5

Relacionado: Os 5 melhores sites para aprender programação Python

Seu improvável amigo de programação

Embora não seja possível apenas dizer onde exatamente você errou em seu código, patos de borracha ajudaram programadores em todos os lugares. Da próxima vez que você encontrar um bug durante a programação, tente pegar um pato de borracha (ou algum outro objeto ou pessoa para agir como um) e veja se esse método de solução de problemas funciona para você.

Quem poderia imaginar que patos de borracha poderiam ser mais do que apenas um brinquedo de banho?