Refaktoryzacja kodu przy użyciu czatu wbudowanego GitHub Copilot

Ukończone

funkcja czatu wbudowanego GitHub Copilot umożliwia refaktoryzację kodu bezpośrednio w edytorze kodu. Czat wbudowany jest przydatny, gdy chcesz wprowadzić zmiany w kodzie bez konieczności przełączania się do widoku czatu.

Omówienie kodu

Przed refaktoryzację kodu ważne jest, aby zrozumieć kod, z którym pracujesz. Należy zrozumieć przeznaczenie kodu, sposób jego działania i wszelkie zależności, które mogą istnieć. Jeśli nie znasz kodu, pośmiń trochę czasu na zapoznanie się z nim i zrozumienie jego struktury i logiki. Używanie GitHub Copilot do analizowania kodu może pomóc zidentyfikować obszary pod kątem ulepszeń i sugerowanych opcji refaktoryzacji.

Możesz użyć funkcji czatu wbudowanego, aby zadawać pytania dotyczące kodu, uzyskać wyjaśnienia określonych części lub poprosić o sugestie dotyczące ulepszeń. Możesz na przykład poprosić GitHub Copilot o wyjaśnienie działania określonej funkcji lub sugerowanie sposobów jej optymalizacji. Możesz również użyć funkcji Czat wbudowany, aby poprosić o pomoc dotyczącą określonych zadań kodowania, takich jak refaktoryzacja funkcji lub poprawa czytelności kodu.

Oto kilka przykładów monitów z prośbą GitHub Copilot o pomoc dotyczącą kodu:

/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

Jeśli wyjaśnienie jest długie lub złożone, możesz przejść do widoku Czat, aby kontynuować konwersację. Możesz również użyć widoku Czat, aby zadać pytania uzupełniające lub poprosić o dodatkowe informacje.

Refaktoryzacja kodu przy użyciu wbudowanego czatu

Użyj funkcji czatu wbudowanego, jeśli chcesz refaktoryzować sekcję kodu wykonującego określone zadanie. Aby uzyskać bardziej złożone zmiany, które obejmują aktualizowanie wielu plików lub projektów, użyj jednego z trybów widoku czatu.

Aby refaktoryzować kod przy użyciu wbudowanego czatu, wykonaj następujące kroki:

  1. Otwórz plik zawierający kod, który chcesz zoptymalizować.

  2. Wybierz kod, który chcesz zoptymalizować.

  3. Otwórz sesję czatu wbudowanego.

    Użyj skrótu klawiaturowego Ctrl+I , aby otworzyć sesję czatu wbudowanego. Alternatywnie możesz wybrać Editor Inline Chat z jednego z menu GitHub Copilot.

  4. Wprowadź monit z prośbą o optymalizację.

    Na przykład: Czy ten kod można ulepszyć?

  5. Przejrzyj sugerowaną aktualizację kodu.

    GitHub Copilot stosuje sugerowaną aktualizację kodu bezpośrednio w edytorze, gdzie można ją przeglądać z pełnym wglądem w kontekst otaczającego kodu.

  6. Wybierz pozycję Akceptuj lub Zamknij , aby zaakceptować lub odrzucić sugerowaną aktualizację kodu.

    Podobnie jak w przypadku wszystkich sugestii GitHub Copilot, sprawdź, czy poprawiony kod działa bez błędów i generuje prawidłowy wynik.

W poniższym przykładzie pokazano, jak używać wbudowanego czatu do refaktoryzacji metody języka C#, która przetwarza dane.

Oryginalna metoda wykonuje czyszczenie danych, tworzy tabelę danych, a następnie drukuje zawartość tabeli. Łączenie kilku operacji w jedną metodę utrudnia konserwację i testowanie kodu.

Możesz refaktoryzować oryginalną metodę, prosząc Inline Chat o utworzenie oddzielnych metod dla każdego z zadań wykonywanych w oryginalnej metodzie.

Oto oryginalny kod:

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);
    }
}

Aby refaktoryzować metodę ProcessData, wykonaj następujące kroki:

  1. Wybierz metodę ProcessData.

  2. Otwórz czat wbudowany.

  3. Wprowadź monit z pytaniem GitHub Copilot o utworzenie oddzielnych metod dla każdego zadania, a następnie naciśnij Enter.

    Na przykład: Chcę refaktoryzować metodę ProcessData. Chcę uzyskać metodę czyszczenia danych, metodę drukowania i metodę przetwarzania danych.

  4. Przejrzyj sugerowaną aktualizację kodu.

    W tym przykładzie GitHub Copilot sugeruje refaktoryzowaną wersję oryginalnej metody, która oddziela zadania czyszczenia i drukowania na oddzielne metody.

    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);
        }
    }
    

    W tym przykładzie refaktoryzacja oryginalnego kodu poprawia modułowość i ułatwia zrozumienie kodu.

  5. Wybierz pozycję Akceptuj lub Zamknij , aby zaakceptować lub odrzucić sugerowaną aktualizację kodu.

    W tym przykładzie sugerowany kod wygląda dobrze, więc wybierz pozycję Akceptuj , aby zastosować refaktoryzowany kod do projektu.

    Podobnie jak w przypadku wszystkich sugestii GitHub Copilot, sprawdź, czy poprawiony kod działa bez błędów i generuje prawidłowy wynik.

  6. Przetestuj refaktoryzowany kod, aby upewnić się, że działa bez błędów i generuje oczekiwany wynik.

Podsumowanie

Funkcja czatu Inline w GitHub Copilot umożliwia refaktoryzację kodu bezpośrednio w edytorze kodu. Czat wbudowany jest przydatny, gdy chcesz wprowadzić zmiany w kodzie bez konieczności przełączania się do widoku czatu. Możesz użyć wbudowanego czatu, aby poprosić o pomoc dotyczącą określonych zadań kodowania, takich jak refaktoryzacja funkcji lub poprawa czytelności kodu. Możesz również użyć wbudowanego czatu, aby ocenić istniejący kod przed refaktoryzowaniem.