Refatore o código usando o Chat Embutido do GitHub Copilot

Concluído

O recurso de Chat Embutido do GitHub Copilot permite refatorar o código diretamente no editor de código. O chat embutido é útil quando você deseja fazer alterações no código sem precisar alternar para o modo de exibição de Chat.

Entender seu código

Antes de refatorar seu código, é importante entender o código com o qual você está trabalhando. Você deve entender a finalidade do código, como ele funciona e quaisquer dependências que ele possa ter. Se você não estiver familiarizado com o código, reserve algum tempo para lê-lo e entender sua estrutura e lógica. Usar o GitHub Copilot para analisar o código pode ajudá-lo a identificar áreas de melhoria e sugerir opções de refatoração.

Você pode usar o recurso chat embutido para fazer perguntas sobre o código, obter explicações de partes específicas ou solicitar sugestões de melhorias. Por exemplo, você pode pedir ao GitHub Copilot para explicar como uma função específica funciona ou sugerir maneiras de otimificá-la. Você também pode usar o recurso chat embutido para pedir ajuda com tarefas de codificação específicas, como refatorar uma função ou melhorar a legibilidade do código.

Aqui estão alguns exemplos de prompts que pedem ao GitHub Copilot ajuda com o código:

/explain Explain how authentication is implemented in this code
/explain Can this code be updated to improve security? Explain the concepts and show some examples

Se a explicação for longa ou complexa, você poderá ir para o modo de exibição chat para continuar a conversa. Você também pode usar o modo de exibição chat para fazer perguntas de acompanhamento ou solicitar informações adicionais.

Usar o Chat Embutido para refatorar código

Use o recurso chat embutido quando quiser refatorar uma seção de código que executa uma tarefa específica. Para alterações mais complexas que envolvem a atualização de vários arquivos ou projetos, use um dos modos de exibição de Chat.

Para refatorar o código usando o Chat Embutido, siga estas etapas:

  1. Abra o arquivo que contém o código que você deseja otimizar.

  2. Selecione o código que você deseja otimizar.

  3. Abra uma sessão de chat integrado.

    Use o atalho de teclado Ctrl+I para abrir a sessão de Chat Embutido. Como alternativa, você pode selecionar Chat Embutido do Editor em um dos menus do GitHub Copilot.

  4. Insira um prompt que solicita uma otimização.

    Por exemplo: esse código pode ser aprimorado?

  5. Examine a atualização de código sugerida.

    O Copilot aplica a atualização de código sugerida diretamente no editor, onde você pode revisá-la no próprio local, com o contexto completo do código ao redor.

  6. Selecione Aceitar ou Fechar para aceitar ou descartar a atualização de código sugerida.

    Assim como acontece com todas as sugestões do Copilot, verifique se o código revisado é executado sem erros e produz o resultado correto.

O exemplo a seguir demonstra como usar o Chat Embutido para refatorar um método C# que processa dados.

O método original executa a limpeza de dados, constrói uma tabela de dados e imprime o conteúdo da tabela. Combinar várias operações em um método torna mais difícil manter e testar seu código.

Você pode refatorar o método original solicitando ao Chat Embutido que crie métodos separados para cada uma das tarefas executadas no método original.

Este é o código original:

using System;
using System.Data;

public class DataProcessor
{
    public void ProcessData(string item, string price)
    {
        // Cleanse the data
        item = item.Trim();    // Remove leading and trailing whitespace
        price = price.Trim();  // Remove leading and trailing whitespace
        double priceValue = double.Parse(price);   // Convert price to a double
        // More cleansing operations can be added here

        // Create and print a DataTable
        DataTable table = new DataTable();
        table.Columns.Add("Item", typeof(string));
        table.Columns.Add("Price", typeof(double));
        table.Rows.Add(item, priceValue);
        foreach (DataRow row in table.Rows)
        {
            Console.WriteLine($"Item: {row["Item"]}, Price: {row["Price"]}");
        }
    }
}

// Example usage
class Program
{
    static void Main()
    {
        string item = "  Apple  ";
        string price = "  1.50  ";
        var processor = new DataProcessor();
        processor.ProcessData(item, price);
    }
}

Para refatorar o método ProcessData, siga estas etapas:

  1. Selecione o método ProcessData.

  2. Abra o chat embutido.

  3. Insira um prompt que solicita ao Copilot que crie métodos separados para cada tarefa e pressione Enter.

    Por exemplo: quero refatorar o método ProcessData. Quero um método para limpeza de dados, um método para impressão e um método para processamento de dados.

  4. Examine a atualização de código sugerida.

    Para este exemplo, Copilot sugere uma versão refatorada do método original que separa as tarefas de limpeza e impressão em métodos separados.

    using System;
    using System.Data;
    
    public class DataProcessor
    {
        public void ProcessData(string item, string price)
        {
            (string cleansedItem, double cleansedPrice) = CleanseData(item, price);
            DataTable table = new DataTable();
            table.Columns.Add("Item", typeof(string));
            table.Columns.Add("Price", typeof(double));
            table.Rows.Add(cleansedItem, cleansedPrice);
            PrintData(table);
        }
    
        private (string, double) CleanseData(string item, string price)
        {
            string trimmedItem = item.Trim();
            string trimmedPrice = price.Trim();
            double priceValue = double.Parse(trimmedPrice);
            return (trimmedItem, priceValue);
        }
    
        private void PrintData(DataTable table)
        {
            foreach (DataRow row in table.Rows)
            {
                Console.WriteLine($"Item: {row["Item"]}, Price: {row["Price"]}");
            }
        }
    }
    
    // Example usage
    class Program
    {
        static void Main()
        {
            string item = "  Apple  ";
            string price = "  1.50  ";
            var processor = new DataProcessor();
            processor.ProcessData(item, price);
        }
    }
    

    Neste exemplo, refatorar o código original melhora a modularidade e torna o código mais fácil de entender.

  5. Selecione Aceitar ou Fechar para aceitar ou descartar a atualização de código sugerida.

    Neste exemplo, o código sugerido parece bom, portanto, você selecionaria Aceitar para aplicar o código refatorado ao seu projeto.

    Assim como acontece com todas as sugestões do Copilot, verifique se o código revisado é executado sem erros e produz o resultado correto.

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

Resumo

O recurso de Chat Embutido do GitHub Copilot permite refatorar o código diretamente no editor de código. O chat embutido é útil quando você deseja fazer alterações no código sem precisar alternar para o modo de exibição de Chat. Você pode usar o Chat Embutido para pedir ajuda com tarefas de codificação específicas, como refatorar uma função ou melhorar a legibilidade do código. Você também pode usar o Chat Embutido para avaliar seu código existente antes da refatoração.