Tạo lời nhắc hiệu quả cho GitHub Copilot
Lời nhắc là một hướng dẫn ngôn ngữ tự nhiên cho GitHub Copilot biết bạn muốn nó làm gì. Lời nhắc có thể được sử dụng để đặt câu hỏi, truyền đạt yêu cầu hoặc mô tả nhiệm vụ.
Ví dụ: các lời nhắc sau đại diện cho một câu hỏi, một yêu cầu và một mô tả nhiệm vụ.
Question: How do I create a button that submits a form?
Request: Add a button that opens a modal dialog. The button should be blue with rounded corners.
Task: Build a product page that displays a product title, product image, product description, and price. Product information should be fetched from the attached ProductsList.json file. The price should be formatted as currency. The page should also include a button to add the product to the cart.
Chất lượng lời nhắc của bạn ảnh hưởng trực tiếp đến chất lượng phản hồi của GitHub Copilot.
Điều gì tạo nên một lời nhắc tốt?
Tạo lời nhắc chất lượng cao là điều cần thiết để nhận được nhiều giá trị nhất từ GitHub Copilot. Các chiến lược sau đây sẽ giúp bạn tạo lời nhắc tạo ra phản hồi chính xác, phù hợp và hữu ích hơn.
Bắt đầu chung, sau đó nhận thông tin cụ thể
Khi viết lời nhắc cho Copilot, hãy bắt đầu với mô tả rộng rãi về mục tiêu hoặc tình huống của bạn, sau đó cung cấp các yêu cầu cụ thể. Cách tiếp cận này cung cấp cho Copilot bối cảnh cần thiết trong khi vẫn đảm bảo các nhu cầu chi tiết của bạn được giải quyết.
Example:
Write a function that tells me if a number is prime.
The function should take an integer and return true if the integer is prime.
The function should error if the input is not a positive integer.
Cung cấp ví dụ cụ thể
Ví dụ là một trong những cách hiệu quả nhất để truyền đạt ý định của bạn với Copilot. Bạn có thể cung cấp dữ liệu đầu vào ví dụ, đầu ra dự kiến và thậm chí cả triển khai ví dụ để hướng dẫn sự hiểu biết của AI.
Example:
Write a function that finds all dates in a string and returns them in an array. Dates can be formatted like:
- 05/02/24
- 05/02/2024
- 5/2/24
- 5/2/2024
- 05-02-24
- 05-02-2024
- 5-2-24
- 5-2-2024
Example usage:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Expected return: ["11/14/2023", "12-1-23"]
Chia các nhiệm vụ phức tạp thành các bước đơn giản hơn
Khi đối mặt với một nhiệm vụ phức tạp hoặc lớn, hãy phân tách nó thành các thành phần nhỏ hơn, có thể quản lý được. Cách tiếp cận này dẫn đến kết quả tốt hơn và giúp gỡ lỗi và tinh chỉnh các phần riêng lẻ dễ dàng hơn.
Ví dụ: Thay vì yêu cầu Copilot tạo một câu đố tìm từ hoàn chỉnh, hãy chia nhỏ nó:
Write a function to generate a 10 by 10 grid of lettersWrite a function to find all words in a grid of letters, given a list of valid wordsWrite a function that uses the previous functions to generate a 10 by 10 grid containing at least 10 wordsUpdate the previous function to print the grid and 10 random words from the grid
Loại bỏ sự mơ hồ
Tránh các tài liệu tham khảo mơ hồ và các thuật ngữ mơ hồ có thể được giải thích theo nhiều cách. Hãy nói rõ về những gì bạn đang đề cập đến và những gì bạn muốn Copilot làm.
Ví dụ kém:
- "Cái này làm gì?" (không rõ "cái này" đề cập đến điều gì).
- "Sửa lỗi" (không chỉ định lỗi nào hoặc cách khắc phục).
Ví dụ tốt hơn:
- "Hàm createUser làm gì?"
- "Mã trong câu trả lời cuối cùng của bạn làm gì?"
- "Sửa lỗi xác thực trong trường nhập email."
Cân nhắc thư viện:
- Nếu sử dụng một thư viện không phổ biến, hãy mô tả mục đích của nó.
- Đối với các thư viện cụ thể, hãy bao gồm các câu lệnh import hoặc chỉ định thư viện bạn muốn sử dụng.
Cung cấp ngữ cảnh phù hợp
Giúp Copilot hiểu cấu trúc và ý định dự án của bạn bằng cách quản lý môi trường phát triển của bạn một cách hiệu quả.
Trong IDE của bạn:
- Mở các tệp có liên quan và đóng các tệp không liên quan.
- Đánh dấu các phần mã cụ thể mà bạn muốn Copilot tham khảo.
- Sử dụng những người tham gia trò chuyện như
@workspacetrong Visual Studio Code hoặc@projecttrong JetBrains IDE.
Trong Trò chuyện Copilot:
- Tham chiếu các tệp hoặc khối mã cụ thể.
- Đính kèm tài liệu hoặc thông số kỹ thuật có liên quan.
- Sử dụng đường dẫn tệp rõ ràng và tên hàm.
Tái diễn và tinh chỉnh
Đừng mong đợi kết quả hoàn hảo trong lần thử đầu tiên. Copilot hoạt động tốt nhất khi bạn tham gia vào một cuộc trò chuyện lặp đi lặp lại, tinh chỉnh các yêu cầu của bạn dựa trên phản hồi bạn nhận được.
Chiến lược lặp lại:
- Nếu sử dụng đề xuất nội tuyến, hãy xóa và thử lại với lời nhắc đã sửa đổi.
- Trong Trò chuyện Copilot, hãy tham khảo các câu trả lời trước đó và yêu cầu sửa đổi cụ thể.
- Xây dựng dựa trên các giải pháp từng phần bằng cách yêu cầu cải tiến gia tăng.
Duy trì lịch sử hội thoại có liên quan
Copilot Chat sử dụng lịch sử cuộc trò chuyện để hiểu ngữ cảnh, vì vậy hãy quản lý lịch sử này một cách chiến lược.
Các phương pháp hay nhất:
- Bắt đầu các chủ đề mới cho các nhiệm vụ hoặc dự án khác nhau.
- Xóa các yêu cầu không liên quan hoặc không thành công có thể gây nhầm lẫn cho các phản hồi trong tương lai.
- Giữ cho các cuộc trò chuyện tập trung vào chức năng liên quan.
Làm theo các phương pháp mã hóa hiệu quả
Chất lượng của cơ sở mã hiện tại ảnh hưởng đến khả năng tạo đề xuất phù hợp của Copilot. Duy trì các tiêu chuẩn cao trong mã của bạn để nhận được sự hỗ trợ AI tốt hơn.
Các yếu tố chất lượng mã:
- Sử dụng kiểu và mẫu mã nhất quán.
- Chọn tên mô tả cho các biến và hàm.
- Thêm nhận xét có ý nghĩa để giải thích logic phức tạp.
- Cấu trúc mã thành các thành phần mô-đun, có phạm vi tốt.
- Bao gồm các bài kiểm tra đơn vị toàn diện.
Note
Bạn có thể yêu cầu Copilot giúp cải thiện chất lượng mã của mình bằng cách yêu cầu nhận xét, tái cấu trúc đề xuất hoặc chia các hàm lớn thành các phần nhỏ hơn, dễ quản lý hơn.
Lời nhắc tốt là:
- Rõ ràng: Mô tả chính xác những gì bạn muốn.
- Cụ thể: Bao gồm chi tiết bố cục, hành vi hoặc kiểu dáng.
- Ngữ cảnh: Tham chiếu mã hoặc cấu trúc hiện có.
Lặp lại lời nhắc
Nếu phản hồi ban đầu của GitHub Copilot không phù hợp với mong đợi của bạn, bạn có thể cần lặp lại lời nhắc của mình. Hãy xem xét các chiến lược sau:
- Chỉnh sửa lời nhắc để cụ thể hơn.
- Thêm ngữ cảnh vào cuộc trò chuyện để làm rõ mục tiêu hoặc yêu cầu của bạn.
- Sử dụng Copilot Chat để đặt câu hỏi tiếp theo dựa trên các câu trả lời trước đó.
Đánh giá và trả lời các đề xuất của Copilot
Hiểu cách đánh giá các đề xuất của Copilot là rất quan trọng để mã hóa rung cảm hiệu quả. Không phải mọi gợi ý đều hoàn hảo và biết khi nào nên chấp nhận, từ chối hoặc sửa đổi câu trả lời sẽ cải thiện đáng kể trải nghiệm phát triển của bạn.
Khi nào nên chấp nhận đề xuất
Chấp nhận đề xuất của Copilot khi:
- Đáp ứng yêu cầu của bạn: Mã thực hiện chính xác những gì bạn yêu cầu.
- Thực hiện theo các phương pháp hay nhất: Sử dụng các mẫu, quy ước đặt tên và cấu trúc thích hợp.
- Có cấu trúc tốt: Mã có thể đọc được, có thể bảo trì và được định dạng phù hợp.
- Bao gồm xử lý lỗi thích hợp: Các trường hợp cạnh và lỗi tiềm ẩn được giải quyết.
- Phù hợp với phong cách dự án của bạn: Phù hợp với các mẫu và quy ước cơ sở mã hiện có.
Ví dụ về một gợi ý tốt để chấp nhận:
Nhắc: "Tạo chức năng xác thực địa chỉ email"
Copilot gợi ý:
function validateEmail(email) {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (typeof email !== 'string') {
throw new Error('Email must be a string');
}
return emailRegex.test(email.toLowerCase());
}
Đề xuất này nên được chấp nhận vì nó bao gồm xác thực đầu vào, xử lý lỗi và sử dụng mẫu biểu thức chính quy hợp lý.
Khi nào nên từ chối đề xuất
Từ chối đề xuất của Copilot khi họ:
- Không giải quyết lời nhắc của bạn: Mã giải quyết một vấn đề khác với yêu cầu.
- Ngăn chặn các lỗ hổng bảo mật: Sử dụng các phương pháp không an toàn hoặc làm lộ dữ liệu nhạy cảm.
- Quá phức tạp: Các tác vụ đơn giản được thực hiện với sự phức tạp không cần thiết.
- Sử dụng các phương pháp không dùng nữa: Dựa vào các API lỗi thời hoặc lỗi thời.
- Thiếu xử lý lỗi: Không tính đến các tình huống lỗi tiềm ẩn.
- Vi phạm các tiêu chuẩn mã hóa: Không tuân theo các thông lệ đã được thiết lập của nhóm bạn.
Ví dụ về đề xuất từ chối:
Nhắc: "Tạo chức năng xác thực mật khẩu an toàn"
Đề xuất kém:
function validatePassword(password) {
return password.length > 6;
}
Điều này nên bị từ chối vì nó quá đơn giản đối với các yêu cầu bảo mật và không xác thực độ mạnh của mật khẩu đúng cách.
Khi nào cần sửa đổi đề xuất
Sửa đổi đề xuất của Copilot khi:
- Hầu hết đều đúng nhưng cần điều chỉnh: Logic cốt lõi là âm thanh nhưng các chi tiết cần được điều chỉnh.
- Cần các tính năng bổ sung: Chức năng cơ bản tốt nhưng cần cải tiến.
- Có vấn đề nhỏ về kiểu dáng: Mã hoạt động nhưng không phù hợp với tùy chọn định dạng của bạn.
- Yêu cầu các tên biến khác nhau: Logic là chính xác nhưng việc đặt tên có thể được cải thiện.
- Cần tối ưu hóa hiệu suất: Chức năng nhưng có thể hiệu quả hơn.
Ví dụ về đề xuất sửa đổi:
Copilot gợi ý:
function calculateTotal(items) {
let total = 0;
for (let i = 0; i < items.length; i++) {
total += items[i].price;
}
return total;
}
Sửa đổi của bạn để dễ đọc hơn và JavaScript hiện đại:
function calculateTotal(items) {
return items.reduce((total, item) => total + item.price, 0);
}
Chiến lược cải thiện đề xuất
Khi một đề xuất không hoàn toàn đúng, hãy thử các phương pháp sau:
Tinh chỉnh lời nhắc của bạn:
- Thêm các yêu cầu cụ thể hơn.
- Bao gồm các ví dụ về đầu vào/đầu ra dự kiến.
- Chỉ định kiểu lập trình hoặc khung bạn đang sử dụng.
Yêu cầu sửa đổi:
- "Làm cho chức năng trước đó mạnh mẽ hơn với xử lý lỗi."
- "Đơn giản hóa mã bạn vừa viết."
- "Thêm các kiểu TypeScript vào hàm trước đó."
Xây dựng dần dần:
- Bắt đầu với một phiên bản cơ bản và yêu cầu cải tiến.
- Thêm từng tính năng một thay vì yêu cầu mọi thứ cùng một lúc.
- Kiểm tra từng lần lặp lại trước khi chuyển sang cải tiến tiếp theo.
Tip
Khi sửa đổi các đề xuất, hãy giữ các phần hoạt động tốt và cụ thể về những gì cần thay đổi. Điều này giúp Copilot hiểu sở thích của bạn và đưa ra các đề xuất tốt hơn trong tương lai.
Summary
Tạo lời nhắc hiệu quả cho GitHub Copilot là điều cần thiết để tối đa hóa tiềm năng của nó trong mã hóa rung cảm. Bằng cách bắt đầu với mô tả chung, cung cấp các ví dụ cụ thể, chia nhỏ các tác vụ phức tạp và duy trì giao tiếp rõ ràng, bạn có thể hướng dẫn Copilot tạo mã chất lượng cao đáp ứng nhu cầu của bạn. Lặp lại lời nhắc và hiểu cách đánh giá các đề xuất sẽ nâng cao hơn nữa trải nghiệm phát triển của bạn, cho phép bạn tận dụng sự hỗ trợ của AI một cách hiệu quả trong khi vẫn duy trì quyền kiểm soát quá trình mã hóa.