Skip to main content

Como aprender a depurar com o GitHub Copilot

Peça ajuda ao GitHub Copilot para identificar e corrigir erros no seu código.

Localizar e corrigir bugs no código pode ser frustrante, especialmente quando você é um novo desenvolvedor. A boa notícia é que ferramentas como o GitHub Copilot podem identificar e eliminar os bugs rapidamente, permitindo que você se concentre em um trabalho mais criativo e interessante.

Pré-requisitos

Os exemplos deste artigo consideram que você esteja usando o GitHub Copilot para depurar um projeto Python no VS Code (Visual Studio Code). Para seguir os exemplos, você precisa:

Como aprender a depurar por meio de exemplos

Há duas situações principais que você encontrará ao tentar executar um código com bugs:

  • O código é fechado antes de terminar de ser executado e você recebe uma mensagem de erro.
  • O código é executado sem erros, mas a saída é diferente do esperado.

A boa notícia é que o Copilot pode ajudar a depurar seu código em ambas as situações. Para saber como fazer isso, acompanhe os exemplos a seguir.

Como depurar um erro com o GitHub Copilot

Ao executar um código com bugs, você geralmente receberá uma mensagem de erro. A mensagem informa o arquivo e a linha em que o erro ocorreu e descreve brevemente o que deu errado. No entanto, as mensagens de erro podem ser confusas. Para entender por completo e corrigir o bug, podemos pedir ajuda ao Copilot.

Vamos tentar fazer isso com um repositório de exemplo: new2code/debug-with-copilot.

Clonando o repositório de exemplo

Primeiro, precisamos criar uma cópia local do repositório:

  1. Comece clonando o repositório new2code/debug-with-copilot em VS Code.
  2. Escolha um local para salvar o repositório no computador e, em seguida, clique em Selecionar como Destino de Repositório.
  3. Quando for solicitado, abra o repositório.

Executando o arquivo com bug

Agora, vamos executar o arquivo bugged_dice_battle.py. Esse programa simula uma batalha de dados entre dois jogadores.

  1. No VS Code, abra e examine o arquivo bugged_dice_battle.py.

  2. Abra a paleta de comandos pressionando Ctrl+Shift+P (Windows/Linux) ou Cmd+Shift+P (Mac).

  3. Digite Terminal: Create New Terminal e pressione Enter.

  4. Na guia Terminal, cole o seguinte comando.

    Windows:

    Shell
    py bugged_dice_battle.py
    

    Mac ou Linux:

    Shell
    python bugged_dice_battle.py
    
  5. Pressione ENTER para executar o programa.

Recebemos um texto de erro no terminal que termina com a seguinte mensagem:

TypeError: só pode concatenar str (não "int") para str

Depurando o arquivo

Para entender o que esse erro significa, pressione Ctrl+Alt+I (Windows/Linux) ou Command+Shift+I (Mac) para abrir o Copilot Chat. Depois, cole e envie a seguinte solicitação:

Text
Explain in depth why my code produces the following error and how I can fix it:

TypeError: can only concatenate str (not "int") to str

O Copilot responderá que o erro ocorre porque estamos tentando concatenar os inteiros die_1 e die_2 com cadeias de caracteres, e só é possível concatenar cadeias de caracteres com cadeias de caracteres.

Em também fornecerá uma versão atualizada do código que corrige o bug usando a função str() para converter os inteiros em cadeias de caracteres antes de concatená-los. Pratique a etapa final da depuração aplicando a sugestão do Copilot ao arquivo.

Como depurar uma saída incorreta com o GitHub Copilot

Às vezes, o código com bugs é executado sem gerar nenhum erro, mas a saída está claramente incorreta. Nesse caso, a depuração pode ser mais difícil porque o VS Code não pode informar o local ou a descrição do bug.

Para esses bugs “invisíveis”, o Copilot é particularmente útil. Vamos testar na prática com o outro arquivo de nosso repositório de exemplo: bugged_factorial_finder.py. Trata-se de um programa em Python que deve calcular um fatorial.

Executando o arquivo com bug

Primeiro, vamos executar o programa para ver a saída incorreta:

  1. Abra e examine o arquivo bugged_factorial_finder.py.

  2. No terminal criado anteriormente, cole o comando a seguir. Windows:

    Shell
    py bugged_factorial_finder.py
    

    Mac ou Linux:

    Shell
    python bugged_factorial_finder.py
    
  3. Pressione ENTER para executar o programa.

Infelizmente, o código não funciona conforme o esperado. Queremos que ele retorne 720, o valor correto do fatorial de 6, mas a saída é muito maior do que isso.

Depurando o arquivo

Para entender o que deu errado, abra o Copilot Chat e envie o seguinte prompt:

Text
Why is the output of this code so much higher than expected? Please explain in depth and suggest a solution.

O Copilot apontará que, como estamos usando o operador *=, estamos multiplicando factorial por i e por factorial. Em outras palavras, estamos multiplicando-o por um factorial extra para cada iteração do loop.

Para corrigir esse erro, o Copilot vai sugerir um código que remove o factorial extra da equação ou que altera o operador *= para =. Faça essa alteração agora!

Como depurar seu projeto

Agora que você praticou a depuração de alguns programas simples com o Copilot, você pode usar as mesmas metodologias para localizar e corrigir bugs ocultos no seu trabalho.

Por exemplo, para depurar uma mensagem de erro gerada pelo código, envie ao Copilot a seguinte solicitação:

Text
Explain in depth why my code produces the following error and how I can fix it:

YOUR-ERROR-MESSAGE

Caso contrário, se você estiver depurando uma saída incorreta, pergunte ao Copilot por que a saída está incorreta e como corrigi-la. Para ter os melhores resultados, dê o máximo de contexto possível sobre como a saída é diferente das suas expectativas.

Com essas táticas, você tem tudo o que precisa para começar a eliminar os bugs no seu projeto.

Próximas etapas

Conforme você prossegue com a codificação, é provável que encontrará cenários de problemas específicos e erros difíceis de serem depurados. Para ver uma lista de possíveis problemas e exemplos de solicitações do Copilot Chat de como corrigi-los, confira Depurando erros.