Localizar e corrigir bugs no código pode ser frustrante, especialmente quando você é um novo desenvolvedor. Felizmente, ferramentas como GitHub Copilot podem identificar e esmagar rapidamente bugs, permitindo que você se concentre em um trabalho mais criativo e interessante.
Pré-requisitos
Os exemplos neste artigo pressupõem que você está usando GitHub Copilot para depurar um projeto de Python em Visual Studio Code (VS Code). Para seguir os exemplos, você precisa:
- Concluir a configuração Visual Studio Code na CopilotVisual Studio Code documentação.
- Baixe Python.
- Instale a extensão Python para Visual Studio Code.
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.
Felizmente, Copilot pode ajudar a depurar seu código em ambas as situações. Para saber como fazer isso, acompanhe os exemplos a seguir.
Depurando um erro com 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 completamente e corrigir o bug, podemos pedir Copilot ajuda.
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:
- Comece a clonar o repositório new2code/debug-with-copilot em VS Code.
- Escolha um local para salvar o repositório no computador e, em seguida, clique em Selecionar como Destino de Repositório.
- Quando for solicitado, abra o repositório.
Executando o arquivo com bug
Agora, vamos executar o arquivo bugged_dice_battle.py. O programa simula uma batalha de dados entre dois jogadores.
-
In VS Code, open and review the
bugged_dice_battle.pyfile. -
Abra a Paleta de Comandos pressionando Ctrl+Shift+P (Windows/Linux) ou Cmd+Shift+P (Mac).
-
Digite
Terminal: Create New Terminale pressione Enter. -
Na guia Terminal, cole o seguinte comando.
Windows:
Shell py bugged_dice_battle.py
py bugged_dice_battle.pyMac ou Linux:
Shell python bugged_dice_battle.py
python bugged_dice_battle.py -
Pressione ENTER para executar o programa.
Recebemos um texto de erro no terminal que termina com a seguinte mensagem:
TypeError: apenas é possível concatenar str (não "int") a str
Depurando o arquivo
Para entender o que esse erro significa, abra Bate-papo do CopilotVS Codee cole e envie o seguinte prompt:
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
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
Copilotresponderá que o erro ocorre porque estamos tentando concatenar os inteiros e die_2 as cadeias die_1 de caracteres, e você só pode concatenar cadeias de caracteres em cadeias de caracteres.
Também fornecerá uma versão atualizada do nosso código que corrige o bug usando a função str() para converter os inteiros em strings antes de concatená-los. Pratique a etapa final da depuração aplicando Copilota sugestão de 's ao arquivo.
Depurando uma saída incorreta com 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 VS Code não é possível informar o local ou a descrição do bug.
Para esses bugs "invisíveis", Copilot é particularmente útil. Vamos testar na prática com o outro arquivo de nosso repositório de exemplo: bugged_factorial_finder.py. É um programa Python que deve calcular um fatorial.
Executando o arquivo com bug
Primeiro, vamos executar o programa para ver a saída incorreta:
-
Abra e examine o arquivo
bugged_factorial_finder.py. -
No terminal criado anteriormente, cole o comando a seguir. Windows:
Shell py bugged_factorial_finder.py
py bugged_factorial_finder.pyMac ou Linux:
Shell python bugged_factorial_finder.py
python bugged_factorial_finder.py -
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 Bate-papo do Copilot e envie o seguinte prompt:
Why is the output of this code so much higher than expected? Please explain in depth and suggest a solution.
Why is the output of this code so much higher than expected? Please explain in depth and suggest a solution.
Copilot apontará que, como estamos usando o *= operador, estamos multiplicando factorial por ambos iefactorial. Em outras palavras, estamos multiplicando por um factorial extra a cada iteração do loop.
Para corrigir esse erro, Copilot sugerirá o código que remove o extra factorial 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 Copilot, você pode usar as mesmas metodologias para localizar e corrigir bugs escondidos em seu próprio trabalho.
Por exemplo, para depurar uma mensagem de erro gerada pelo código, envie Copilot o seguinte prompt:
Explain in depth why my code produces the following error and how I can fix it: YOUR-ERROR-MESSAGE
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 Copilot por que a saída está incorreta e como você pode 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 obter uma lista de possíveis problemas e prompts de exemplo Bate-papo do Copilot para corrigi-los, consulte Depurar erros.