使用 GitHub Copilot Inline Chat 重構程式碼
GitHub Copilot 的線上聊天功能允許你直接在程式碼編輯器中重構程式碼。 當您想要變更程序代碼,而不需切換至 [聊天] 檢視時,內嵌聊天很有用。
瞭解您的程序代碼
在重構程序代碼之前,請務必瞭解您正在使用的程序代碼。 您應該瞭解程序代碼的目的、運作方式,以及它可能擁有的任何相依性。 如果您不熟悉程式代碼,請花一些時間閱讀程式代碼並瞭解其結構和邏輯。 利用GitHub Copilot分析程式碼,能幫助你找出改進空間並建議重構選項。
您可以使用內嵌聊天功能來詢問有關程式碼的問題、取得特定部分的說明,或要求改進建議。 例如,你可以請GitHub Copilot解釋某個函數是如何運作的,或建議如何優化它。 您也可以使用內嵌聊天功能來尋求特定程式代碼撰寫工作的協助,例如重構函式或改善程式代碼可讀性。
以下是一些向 GitHub Copilot 請求協助程式碼的要求範例:
/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
如果說明很長或很複雜,您可以移至 [聊天] 檢視以繼續交談。 您也可以使用 [聊天] 檢視來詢問後續問題或要求其他資訊。
使用內嵌聊天來重構程序代碼
當您想要重構執行特定工作的程式碼區段時,請使用 Inline Chat 功能。 如需涉及更新多個檔案或專案的更複雜的變更,請使用其中一種聊天檢視模式。
若要使用內嵌聊天重構程式代碼,請遵循下列步驟:
開啟包含您要優化之程式代碼的檔案。
選取您想要優化的程序代碼。
開啟內嵌聊天會話。
使用 Ctrl+I 鍵盤快捷方式開啟內嵌聊天會話。 或者,你也可以從GitHub Copilot選單中選擇Editor Inline Chat。
輸入要求優化的提示。
例如: 這段程式碼可以改進嗎?
檢閱建議的程式代碼更新。
GitHub Copilot 直接在編輯器中套用建議的程式碼更新,讓你能在原地檢視,並完整掌握周圍程式碼的上下文。
選擇 接受 或 關閉 以接受或丟棄建議的程式碼更新。
和所有GitHub Copilot建議一樣,請檢查修訂後的程式碼是否能正常執行並產生正確結果。
下列範例示範如何使用 Inline Chat 來重構處理數據的 C# 方法。
原始方法會執行數據清理、建構數據表,然後列印數據表的內容。 將數個作業結合成一個方法,可讓維護及測試程序代碼更加困難。
您可以藉由要求 Inline Chat 為原始方法中執行的每個工作建立個別的方法,以重構原始方法。
以下是原始程式代碼:
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);
}
}
若要重構 ProcessData 方法,請遵循下列步驟:
選取 ProcessData 方法。
開啟內嵌聊天。
輸入一個提示,要求GitHub Copilot為每個任務建立獨立的方法,然後按下 Enter。
舉例來說: 我想重構 ProcessData 方法。我想要一個資料清理的方法、一個列印方法,以及一個資料處理的方法。
檢閱建議的程式代碼更新。
在這個例子中,GitHub Copilot建議使用原始方法的重構版本,將清理與列印任務分離為不同的方法。
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); } }在此範例中,重構原始程序代碼可改善模組化,並讓程式代碼更容易瞭解。
選擇 接受 或 關閉 以接受或丟棄建議的程式碼更新。
在這個範例中,建議的程式碼看起來不錯,所以你會選擇 接受 ,將重構後的程式碼套用到你的專案中。
和所有GitHub Copilot建議一樣,請檢查修訂後的程式碼是否能正常執行並產生正確結果。
測試重構的程式代碼,以確保其執行時不會發生錯誤,併產生預期的結果。
總結
GitHub Copilot 的線上聊天功能允許你直接在程式碼編輯器中重構程式碼。 當您想要變更程序代碼,而不需切換至 [聊天] 檢視時,內嵌聊天很有用。 您可以使用內嵌聊天來尋求特定程式代碼撰寫工作的協助,例如重構函式或改善程式代碼可讀性。 您也可以在重構之前,先使用內嵌聊天來評估現有的程序代碼。