Refatorar código usando os modos de chat do GitHub Copilot

Concluído

GitHub Copilot pode ser usado para refatorar código em sua base de código. Você pode usar os agentes de exibição de chat para analisar, planejar e implementar tarefas de refatoração de código. Os agentes de exibição de chat fornecem uma interface amigável para gerenciar conversas de chat e acessar os recursos do GitHub Copilot. A vista de Chat inclui os seguintes agentes embutidos:

  • Pergunte: Use Pergunte para fazer perguntas sobre sua base de código ou conceitos de tecnologia. Você pode usar o Ask para explicar o código, sugerir revisões ou correções ou fornecer informações relacionadas à base de código.
  • Plano: use o agente plan para criar um plano de implementação estruturado e passo a passo antes de escrever qualquer código. Quando o plano parecer correto, entregue-o a um agente de implementação para executá-lo.
  • Agente: use o Agente para iniciar um fluxo de trabalho de codificação agente. Você pode usar o Agente para executar comandos, executar código ou executar outras tarefas em seu workspace.

Importante

Quando você usa o Agente, GitHub Copilot pode fazer várias solicitações premium para concluir uma única tarefa. As solicitações Premium podem ser usadas por prompts iniciados pelo usuário e ações de acompanhamento que o GitHub Copilot toma em seu nome. O total de solicitações premium usadas depende da complexidade da tarefa, do número de etapas envolvidas e do modelo selecionado.

Usar o Ask para refatorar o código

Você pode usar o Ask para obter ajuda com tarefas de codificação, entender conceitos complicados e melhorar seu código. O Ask foi projetado para conversas interativas com GitHub Copilot Chat. Você pode fazer perguntas, obter explicações ou solicitar sugestões em tempo real.

  1. Abra o modo de exibição chat e selecione Perguntar.

  2. Adicione contexto ao chat.

    O Ask dá suporte a participantes de chat, comandos de barra e variáveis de chat. Você pode adicionar o participante do @workspace chat ou #codebase ao chat para fornecer contexto junto com arquivos ou pastas.

  3. Faça perguntas que ajudam você a entender o código que deseja refatorar e as alterações que deseja fazer.

    Por exemplo, você pode pedir ao GitHub Copilot para ajudá-lo a entender seu código de autenticação existente e a como atualizar o método atual usando OAuth.

  4. Construa um prompt que descreva a atualização que você deseja implementar.

    Seu prompt deve incluir uma descrição do recurso de código que você deseja implementar. Por exemplo:

    @workspace I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files. Explain how to update the EnumHelper class using dictionaries and show me the updated code.
    
  5. Revise o código sugerido na visualização do Chat.

    A resposta exibida no modo de exibição chat incluirá um snippet de código que você pode usar para implementar o recurso. Você pode inserir prompts atualizados para refinar o código ou solicitar mais detalhes.

  6. Para implementar o código sugerido, você pode passar o ponteiro do mouse sobre o snippet de código e selecionar entre as opções Aplicar, Inserir e Copiar .

    • Aplicar: aplica a sugestão de código ao arquivo atual no editor.
    • Inserir: insere a sugestão de código na posição atual do cursor no editor.
    • Copiar: Copia a sugestão de código para a área de transferência.
  7. Teste o código refatorado para garantir que ele seja executado sem erros e gere o resultado esperado.

Use o Plano para refatorar o código

Você pode usar o agente plan quando quiser criar um plano de implementação estruturado e passo a passo antes de fazer alterações. O agente de Plano analisa sua base de código, faz perguntas esclarecedoras e produz um plano detalhado. Quando o plano estiver correto, você poderá entregá-lo a um agente de implementação para executá-lo.

Dica

Use o Ask para avaliar o código que você está interessado em refatorar e avaliar suas opções antes de começar a fazer alterações. Você pode usar o Plano para criar um plano estruturado e, em seguida, entregá-lo a um agente de implementação.

  1. Abra a visualização de Chat e selecione Plano.

  2. Adicione contexto ao chat.

    Especifique o contexto do workspace usando #codebase e adicionando arquivos ao chat.

  3. Construa um prompt que descreva o recurso de código que você deseja implementar.

    Seu prompt deve incluir uma descrição do recurso de código que você deseja implementar. Por exemplo:

    
    #codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files.
    
    
  4. Examine o plano de implementação estruturado que GitHub Copilot gera.

    O agente de plano cria um plano passo a passo que você pode examinar antes que qualquer alteração de código seja feita.

  5. Quando o plano parecer correto, entregue-o a um agente de implementação para executá-lo.

    Você pode entregar o plano ao Agente para aplicar as alterações à sua base de código.

  6. Examine as edições sugeridas no editor de código.

  7. Aceite ou descarte as edições sugeridas.

    Você pode navegar pelas edições usando as setas para cima e para baixo. Você pode manter (aceitar) ou desfazer (descartar) as edições sugeridas individualmente usando o menu pop-up que aparece em cada edição. Você também pode aceitar ou rejeitar todas as edições de uma só vez usando os botões Manter e Desfazer na parte inferior da guia editor (ou modo de exibição chat).

  8. Teste o código refatorado para garantir que ele seja executado sem erros e gere o resultado esperado.

Usar o Agente para refatorar código

Você pode usar o Agente quando quiser automatizar o processo de refatoração de código. O Agente atua como um agente autônomo que pode executar ações em seu nome. Você pode solicitar GitHub Copilot executar tarefas específicas e isso gera código com base em suas solicitações.

Com o Agente, você pode usar o idioma natural para especificar uma tarefa de alto nível e permitir que GitHub Copilot raciocínio autônomo sobre a solicitação, planeje o trabalho necessário e aplique as alterações à sua base de código. O Agente usa uma combinação de edição de código e invocação de ferramentas para realizar a tarefa especificada. À medida que processa sua solicitação, ela monitora o resultado de edições e ferramentas e itera para resolver quaisquer problemas que surgirem.

Importante

Quando você usa o Agente, GitHub Copilot pode fazer várias solicitações premium para concluir uma única tarefa. As solicitações Premium podem ser usadas por prompts iniciados pelo usuário e ações de acompanhamento que o GitHub Copilot toma em seu nome. O total de solicitações premium usadas depende da complexidade da tarefa, do número de etapas envolvidas e do modelo selecionado.

  1. Abra a exibição de Chat e selecione Agente.

  2. Construa um prompt que descreva a tarefa que você deseja que o GitHub Copilot execute.

    Suponha que você tenha um projeto de código que use dois ou mais processos/técnicas para realizar a mesma tarefa. Você pode pedir GitHub Copilot refatorar o código usando uma única abordagem para melhorar a consistência, a manutenção e o desempenho.

    Por exemplo:

    
    Review the LINQ code used in the JsonData and JsonLoanRepository classes. Refactor the methods in the JsonPatronRepository class using LINQ queries. Ensure that existing code functionality is maintained.
    
    
  3. O agente pode invocar várias ferramentas para realizar tarefas diferentes. Opcionalmente, selecione o ícone Ferramentas para configurar quais ferramentas podem ser usadas para responder à sua solicitação.

  4. Confirme invocações de ferramenta e comandos de terminal.

    Antes de o GitHub Copilot executar um comando de terminal ou uma ferramenta que não é interna, ele solicita a confirmação para continuar. A confirmação é necessária porque as ferramentas podem ser executadas localmente em seu computador e executar ações que modificam arquivos ou dados.

  5. GitHub Copilot detecta problemas e problemas em edições de código e comandos de terminal e iterará e executará ações para resolvê-los.

    Importante

    Embora GitHub Copilot seja capaz de se auto-curar, pode nem sempre ser capaz de resolver problemas por conta própria. Você pode pausar o processo e fornecer mais contexto para ajudar GitHub Copilot entender o problema. Você também pode cancelar o processo e recomeçar com um novo prompt.

  6. Examine as edições sugeridas e aceite ou descarte as edições sugeridas.

  7. Teste o código refatorado para garantir que ele gere o resultado esperado.

    O Agente deve resolver problemas por conta própria, mas você ainda deve testar o código para garantir que ele funcione conforme o esperado.

    Você pode reverter as edições feitas pelo Agente usando o botão Desfazer no modo de exibição chat. Você também pode usar a opção Reverter no editor para reverter as alterações feitas pelo Agente.

Quando escolher o Agente em vez do Plano

Considere os seguintes critérios para escolher entre Plano e Agente:

  • Planejamento: O plano cria um plano de implementação estruturado e passo a passo antes de escrever qualquer código. O Agente determina de forma autônoma o contexto e os arquivos relevantes a serem editados e começa a fazer alterações diretamente.
  • Complexidade da tarefa: o Agente é mais adequado para tarefas complexas que exigem edições de código e invocação de ferramentas ou comandos de terminal.
  • Duração: o Agente usa várias etapas para processar uma solicitação, portanto, pode levar mais tempo para gerar uma resposta. Por exemplo, para determinar o contexto e os arquivos relevantes a serem editados, determine o plano de ação e muito mais.
  • Auto-recuperação: o Agente avalia o resultado das edições geradas e pode iterar várias vezes para resolver problemas intermediários.
  • Cota de solicitação: quando você está usando o modo Agent, dependendo da complexidade da tarefa, um prompt pode resultar em muitas solicitações para o back-end.

Resumo

GitHub Copilot pode ser usado para refatorar código em sua base de código. Você pode usar os agentes de exibição de chat para analisar, planejar e implementar tarefas de refatoração de código. O modo de exibição de chat inclui três agentes embutidos: Agente, Plano e Pergunta. Você pode usar o Ask para fazer perguntas sobre sua base de código ou conceitos de tecnologia. Você pode usar o Plano para criar um plano de implementação estruturado antes de escrever código. Você pode usar o Agente para iniciar um fluxo de trabalho de codificação agente.