Xem lại các kịch bản tái cấu trúc mã và GitHub Copilot các phương pháp hay nhất
Refactoring code là quá trình tái cấu trúc code hiện có mà không thay đổi hành vi của nó. Những lợi ích của việc tái c tiếp tục bao gồm cải thiện khả năng đọc mã, giảm độ phức tạp, giúp cho mã dễ duy trì hơn và cho phép thêm các tính năng mới dễ dàng hơn. Việc triển khai các phương pháp hay nhất GitHub Copilot có thể giúp bạn làm việc hiệu quả hơn và đạt được kết quả tốt hơn.
GitHub Copilot phương pháp hay nhất
GitHub Copilot là một công cụ mạnh mẽ có thể giúp bạn tái cấu trúc và cải thiện mã của mình. Tuy nhiên, để có được kết quả tốt nhất, bạn nên làm theo một số phương pháp hay nhất khi sử dụng GitHub Copilot.
Cải thiện phản hồi bằng lời nhắc tốt hơn
Bạn có thể nâng cao chất lượng phản hồi của GitHub Copilot bằng cách viết lời nhắc hiệu quả hơn. Lời nhắc được soạn thảo tốt có thể giúp GitHub Copilot hiểu rõ hơn về yêu cầu của mình và tạo ra các đề xuất mã phù hợp hơn.
Các hướng dẫn sau đây có thể giúp bạn viết lời nhắc tốt hơn:
Bắt đầu chung, sau đó tìm hiểu cụ thể.
Generate a Calculator class. Add methods for addition, subtraction, multiplication, division, and factorial. Don't use any external libraries and don't use recursion.Đưa ra ví dụ về những gì bạn muốn.
Generate a function that takes a string and returns the number of vowels in it. For example: findVowels("hello") returns 2, findVowels("sky") returns 0.Tách các tác vụ phức tạp thành các tác vụ đơn giản hơn.
Thay vì yêu cầu GitHub Copilot "Tạo ứng dụng lập kế hoạch bữa ăn", hãy chia lời nhắc của bạn thành các nhiệm vụ nhỏ hơn.
Ví dụ:
Generate a function that takes a list of ingredients and returns a list of recipes.Generate a function that takes a list of recipes and returns a shopping list.Generate a function that takes a list of recipes and returns a meal plan for the week.Cung cấp ngữ cảnh phù hợp, chẳng hạn như lựa chọn mã, tệp, đầu ra thiết bị đầu cuối và hơn thế nữa.
Ví dụ, sử dụng biến
#codebaseđể tham chiếu đến toàn bộ cơ sở mã: "Cơ sở dữ liệu connection string sử dụng ở đâu trong #codebase?"Đọc lên trên lời nhắc của bạn.
Cung cấp lời nhắc theo dõi để tinh chỉnh hoặc sửa đổi phản hồi.
Ví dụ: nếu bạn bắt đầu với lời nhắc sau:
"Viết hàm để tính giai thừa của một số."
Bạn có thể theo dõi với:
"Không sử dụng tính năng quy lặp và tối ưu hóa bằng cách sử dụng bộ đệm ẩn."
Sau đó:
"Use meaningful variable names" (Sử dụng tên biến có ý nghĩa).
Duy trì liên quan lịch sử trò chuyện.
GitHub Copilot sử dụng lịch sử của cuộc trò chuyện để cung cấp ngữ cảnh. Xóa các câu hỏi và câu trả lời trước đây khỏi lịch sử nếu chúng không liên quan. Hoặc bắt đầu phiên mới nếu bạn muốn thay đổi ngữ cảnh.
Cung cấp ngữ cảnh và công cụ phù hợp
Làm phong phú lời nhắc của bạn với ngữ cảnh liên quan để nhận được phản hồi chính xác và có liên quan hơn trong trò chuyện. Với các công cụ phù hợp, bạn có thể tăng năng suất nhà phát triển của mình.
Trong Tổng đài viên, chọn nút công cụ để định cấu hình các công cụ bạn muốn sử dụng hoặc thêm chúng vào lời nhắc của bạn một cách rõ ràng.
Sử dụng
#codebaseđể cho phép GitHub Copilot tự động tìm thấy các tệp phù hợp bằng cách thực hiện tìm kiếm mã.Sử dụng công cụ
#fetchđể tìm nạp nội dung từ trang web hoặc sử dụng#githubRepođể thực hiện tìm kiếm mã trên kho lưu trữ GitHub.Tham chiếu tệp, thư mục hoặc ký hiệu trong lời nhắc của bạn bằng cách sử
#<file name>dụng ,#<folder name>hoặc#<symbol>.Kéo và thả tệp, thư mục hoặc tab trình soạn thảo vào lời nhắc trò chuyện.
Thêm sự cố, kiểm tra lỗi hoặc đầu ra thiết bị đầu cuối vào lời nhắc trò chuyện cho ngữ cảnh cụ thể theo kịch bản.
Ghi
Khi bạn sử dụng Agent, GitHub Copilot sẽ tự động tìm thấy các tệp và ngữ cảnh có liên quan cho bạn.
Các kịch bản tái c yếu tố mã phổ biến
GitHub Copilot có thể giúp bạn nhanh chóng tái cấu trúc mã theo nhiều cách. Danh sách sau đây bao gồm một số kịch bản phổ biến cho mã tái c tiếp tục:
- Tối ưu hóa mã không hiệu năng
- Dọn dẹp mã lặp lại
- Làm cho mã ngắn gọn hơn
- Tách các đơn vị mã phức tạp
- Viết lại mã có điều kiện để dễ đọc hơn
- Định dạng lại mã để sử dụng cấu trúc khác
Sử dụng GitHub Copilot để tối ưu hóa mã không hiệu quả
GitHub Copilot có thể giúp bạn tối ưu hóa mã. Ví dụ: bạn có thể tối ưu hóa mã của mình để giúp mã chạy nhanh hơn.
Hãy xem xét kịch bản bash sau đây:
#!/bin/bash
# Find all .txt files and count the number of lines in each file
for file in $(find . -type f -name "*.txt"); do
wc -l "$file"
done
Bạn có thể sử dụng các tính năng trò chuyện để đánh giá các tùy chọn để tối ưu hóa các khía cạnh khác nhau của tập lệnh, chẳng hạn như hiệu suất.
#!/bin/bash
# Find all .txt files and count the number of lines in each file (improved performance)
find . -type f -name "*.txt" -print0 | xargs -0 wc -l
Sử dụng GitHub Copilot để dọn dẹp mã lặp lại
Tránh lặp lại sẽ làm cho mã của bạn dễ sửa đổi và gỡ lỗi hơn. Ví dụ: nếu cùng một phép tính được thực hiện nhiều lần tại các vị trí khác nhau trong một tệp, bạn có thể di chuyển phép tính đến một hàm.
Trong ví dụ javaScript rất đơn giản sau đây, tính toán tương tự (giá mặt hàng nhân với số lượng mặt hàng đã bán) được thực hiện ở hai nơi.
let totalSales = 0;
let applePrice = 3;
let appleSold = 100;
totalSales += applePrice * appleSold;
let orangePrice = 2;
let orangeSold = 50;
totalSales += orangePrice * orangeSold;
console.log(`Total: ${totalSales}`);
Bạn có thể yêu cầu các tính năng trò chuyện di chuyển tính toán lặp lại vào một hàm.
function calculateTotal(price, quantity) {
return price * quantity;
}
let totalSales = 0;
let applePrice = 3;
let appleSold = 100;
totalSales += calculateTotal(applePrice, appleSold);
let orangePrice = 2;
let orangeSold = 50;
totalSales += calculateTotal(orangePrice, orangeSold);
console.log(`Total: ${totalSales}`);
Sử dụng GitHub Copilot để làm cho mã ngắn gọn hơn
Nếu mã diễn giải không cần thiết, bạn có thể khó đọc và duy trì mã. GitHub Copilot có thể đề xuất phiên bản ngắn gọn hơn của mã đã chọn.
Mã Python sau đây xuất ra diện tích của một hình chữ nhật và một hình tròn, nhưng mã có thể được viết ngắn gọn hơn:
def calculate_area_of_rectangle(length, width):
area = length * width
return area
def calculate_area_of_circle(radius):
area = 3.14 * radius * radius
return area
rectangle_length = 5
rectangle_width = 10
rectangle_area = calculate_area_of_rectangle(rectangle_length, rectangle_width)
print(f"Area of rectangle: {rectangle_area}")
circle_radius = 7
circle_area = calculate_area_of_circle(circle_radius)
print(f"Area of circle: {circle_area}")
GitHub Copilot có thể giúp bạn tái cấu trúc mã và làm cho nó ngắn gọn hơn.
def calculate_area_of_rectangle(length, width):
return length * width
def calculate_area_of_circle(radius):
return 3.14 * radius * radius
rectangle_length = 5
rectangle_width = 10
print(f"Area of rectangle: {calculate_area_of_rectangle(rectangle_length, rectangle_width)}")
circle_radius = 7
print(f"Area of circle: {calculate_area_of_circle(circle_radius)}")
Sử dụng GitHub Copilot để chia nhỏ các đơn vị mã phức tạp
Các phương pháp hoặc hàm lớn thực hiện nhiều thao tác có khả năng tái sử dụng ít cơ hội hơn so với các hàm nhỏ hơn, đơn giản hơn, tập trung vào thực hiện một thao tác cụ thể. Họ cũng có thể khó hiểu và gỡ lỗi hơn.
GitHub Copilot có thể giúp bạn chia các khối mã phức tạp thành các đơn vị nhỏ hơn phù hợp hơn để sử dụng lại.
Mã Python sau đây là một ví dụ rất đơn giản, nhưng nó cho thấy nguyên tắc chia một hàm thành hai hàm thực hiện các hoạt động cụ thể.
import pandas as pd
from pandas.io.formats.styler import Styler
def process_data(item, price):
# Cleanse the data
item = item.strip() # Remove leading and trailing whitespace
price = price.strip() # Remove leading and trailing whitespace
price = float(price) # Convert price to a float
# More cleansing operations can be added here
# Create and print a DataFrame
data = {'Item': [item], 'Price': [price]}
df = pd.DataFrame(data)
print(df.to_string(index=False))
# Example usage
item = " Apple "
price = " 1.50 "
process_data(item, price)
Bạn có thể sử dụng GitHub Copilot để tái cấu trúc mã nhằm tạo các chức năng làm sạch dữ liệu, in dữ liệu và xử lý dữ liệu.
import pandas as pd
from pandas.io.formats.styler import Styler
def cleanse_data(item, price):
# Cleanse the data
item = item.strip() # Remove leading and trailing whitespace
price = price.strip() # Remove leading and trailing whitespace
price = float(price) # Convert price to a float
return item, price
def print_data(item, price):
# Create and print a DataFrame
data = {'Item': [item], 'Price': [price]}
df = pd.DataFrame(data)
print(df.to_string(index=False))
def process_data(item, price):
item, price = cleanse_data(item, price)
print_data(item, price)
# Example usage
item = " Apple "
price = " 1.50 "
item, price = cleanse_data(item, price)
print_data(item, price)
Sử dụng GitHub Copilot để viết lại mã có điều kiện để dễ đọc hơn
Thường có một số cách để viết mã có hoặc không được thực thi tùy thuộc vào các điều kiện khác nhau. Một số cấu trúc có điều kiện phù hợp hơn những cấu trúc khác cho các trường hợp sử dụng cụ thể và việc chọn cấu trúc có điều kiện thay thế đôi khi có thể làm cho mã dễ đọc hơn.
Phương thức Java này sử dụng một loạt các câu lệnh if và else if để xác định thao tác nào sẽ thực hiện:
public string getSound(String animal) {
if (animal == null) {
System.out.println("Animal is null");
} else if (animal.equalsIgnoreCase("Dog")) {
return "bark";
} else if (animal.equalsIgnoreCase("Cat")) {
return "meow";
} else if (animal.equalsIgnoreCase("Bird")) {
return "tweet";
}
return "unknown";
}
Câu lệnh switch có thể là một cách tốt hơn để áp dụng cùng một lô-gic.
/**
* Returns the sound made by the specified animal.
*
* @param animal the name of the animal
* @return the sound made by the animal, or "unknown" if the animal is not recognized
*/
public String getAnimalSound(String animal) {
return switch (animal) {
case null -> "Animal is null";
case "Dog" -> "bark";
case "Cat" -> "meow";
case "Bird" -> "tweet";
default -> "unknown";
};
}
Sử dụng GitHub Copilot để định dạng lại mã để sử dụng cấu trúc khác
Giả sử bạn có hàm sau đây trong JavaScript:
function listRepos(o, p) {
return fetch(`https://api.github.com/orgs/${o}/repos?per_page=${parseInt()}`)
.then(response => response.json())
.then( (data) => data);
}
Nếu các tiêu chuẩn mã hóa của bạn yêu cầu bạn sử dụng ký hiệu mũi tên cho các hàm và tên mô tả cho các tham số, bạn có thể sử dụng GitHub Copilot để giúp bạn thực hiện những thay đổi này.
const listRepositories = (organization, perPage) => {
return fetch(`https://api.github.com/orgs/${organization}/repos?per_page=${parseInt(perPage)}`)
.then(response => response.json())
.then(data => data);
};
Tóm tắt
GitHub Copilot có thể giúp bạn tái cấu trúc mã theo nhiều cách khác nhau. Bạn có thể sử dụng chế độ xem Trò chuyện hoặc Trò chuyện nội tuyến để yêu cầu GitHub Copilot tối ưu hóa mã không hiệu quả, dọn dẹp mã lặp lại, làm cho mã ngắn gọn hơn, chia nhỏ các đơn vị mã phức tạp, viết lại mã có điều kiện để dễ đọc hơn và định dạng lại mã để sử dụng cấu trúc khác.