Kiểm tra các phương pháp hay nhất về GitHub Copilot
GitHub Copilot for Visual Studio Code giúp các nhà phát triển viết mã nhanh hơn và ít lỗi hơn.
Tuy nhiên, GitHub Copilot là một lập trình viên cặp AI, không phải một lập trình viên. Để tận dụng tối đa GitHub Copilot, bạn cần làm theo các phương pháp hay nhất.
Chọn công cụ GitHub Copilot phù hợp cho công việc
Mặc dù các tính năng hoàn thành mã của GitHub Copilot và các tính năng trò chuyện của GitHub Copilot chia sẻ một số chức năng, nhưng hai công cụ này được sử dụng tốt nhất trong các trường hợp khác nhau.
Hoàn tất mã cung cấp nhiều giá trị nhất khi chúng được sử dụng để:
- Hoàn thành đoạn mã, tên biến số và hàm khi bạn viết.
- Tạo mã lặp lại.
- Tạo mã từ chú thích tại chỗ bằng ngôn ngữ tự nhiên.
- Tạo thử nghiệm để phát triển dựa trên kiểm tra.
Ngoài ra, các tính năng trò chuyện của GitHub Copilot mang lại nhiều giá trị nhất khi chúng được sử dụng:
- Trả lời các câu hỏi về mã bằng ngôn ngữ tự nhiên.
- Tạo các phần lớn của mã, sau đó in lên mã đó để đáp ứng nhu cầu của bạn.
- Hoàn thành các tác vụ cụ thể bằng cách sử dụng người tham gia trò chuyện, lệnh gạch chéo và biến trò chuyện. Người tham gia trò chuyện (chẳng hạn như
@vscodehoặc@terminal) đặt ngữ cảnh cho yêu cầu, lệnh gạch chéo (chẳng hạn như/explainhoặc/fix) truyền đạt ý định của bạn và các biến trò chuyện (chẳng hạn như#filehoặc#codebase) tập trung Copilot vào ngữ cảnh cụ thể. Những người tham gia và lệnh khác nhau có sẵn trong các nền tảng GitHub Copilot Chat khác nhau. - Hoàn thành tác vụ dưới dạng một tư cách cụ thể. Ví dụ: bạn có thể nói với GitHub Copilot Chat rằng đó là Nhà phát triển C++ cấp cao rất quan tâm đến chất lượng mã, khả năng đọc và hiệu quả. Sau khi thiết lập tính cách, bạn có thể yêu cầu GitHub Copilot xem lại mã của mình.
Tận dụng tối đa các đề xuất nội tuyến của GitHub Copilot
GitHub Copilot tự động đưa ra các đề xuất để giúp bạn viết mã hiệu quả hơn. GitHub Copilot cung cấp các đề xuất tốt hơn khi bạn làm theo một số hành động và hành vi nhất định. Bạn có thể đã dõi theo một số hành động và hành vi này vì chúng cũng giúp bạn và đồng nghiệp của bạn hiểu được mã của bạn.
Cung cấp ngữ cảnh cho GitHub Copilot
GitHub Copilot hoạt động tốt nhất khi nó có đủ ngữ cảnh để biết bạn đang làm gì và bạn muốn trợ giúp về điều gì. Cũng giống như bạn cung cấp cho đồng nghiệp ngữ cảnh có liên quan khi yêu cầu trợ giúp, bạn cần cung cấp ngữ cảnh cho GitHub Copilot.
Mở tệp
Để hoàn thành mã, GitHub Copilot xem xét các tệp đang mở trong trình chỉnh sửa của bạn để thiết lập ngữ cảnh và tạo đề xuất thích hợp. Mở các tệp liên quan trong Visual Studio Code trong khi sử dụng GitHub Copilot giúp xác định ngữ cảnh và cho phép GitHub Copilot nhìn thấy bức tranh toàn cảnh hơn về dự án của bạn.
Chú thích mức cao nhất
Cũng giống như bạn giới thiệu ngắn gọn, cấp cao cho đồng nghiệp, nhận xét cấp cao nhất trong tệp mã có thể giúp GitHub Copilot hiểu ngữ cảnh tổng thể của mã bạn đang tạo.
Thích hợp bao gồm và tham khảo
Tốt nhất là bạn nên đặt thủ công các tham chiếu bao gồm hoặc mô-đun mà bạn cần cho công việc của mình. GitHub Copilot có thể đưa ra đề xuất, nhưng bạn có thể biết rõ nhất những phụ thuộc nào bạn cần đưa vào. Điều này cũng có thể thông báo cho GitHub Copilot về các khung, thư viện và phiên bản của chúng mà bạn muốn sử dụng khi tạo đề xuất.
Tên hàm có ý nghĩa
Cũng giống như một phương thức được gọi là fetchData() sẽ không có nhiều ý nghĩa đối với đồng nghiệp (hoặc bạn sau vài tháng), fetchData() sẽ không giúp GitHub Copilot hiểu mã của bạn. Sử dụng tên hàm có ý nghĩa giúp GitHub Copilot tạo ra các đề xuất thực hiện những gì bạn muốn.
Chú thích hàm cụ thể và có phạm vi tốt
Tên hàm chỉ có thể mang tính mô tả mà không quá dài. Nhận xét hàm có thể giúp điền thông tin chi tiết mà GitHub Copilot có thể cần biết.
Prime GitHub Copilot với mã mẫu
Một mẹo để đưa GitHub Copilot vào đúng trang là sao chép và dán các mẫu mã mong muốn vào tab trình soạn thảo đang mở. Mẫu phải đại diện cho mã mà bạn muốn GitHub Copilot mô phỏng. Cung cấp một ví dụ có thể giúp GitHub Copilot tạo các đề xuất phù hợp với ngôn ngữ và tác vụ mà bạn muốn nó mô phỏng. Khi GitHub Copilot đã giúp bạn tạo một số mã phù hợp với mục tiêu của mình, bạn có thể xóa mã mẫu. Cách tiếp cận này đặc biệt hữu ích khi bạn cần "đào tạo" GitHub Copilot. Ví dụ: giả sử GitHub Copilot mặc định đề xuất các đoạn mã triển khai phiên bản cũ hơn của thư viện. Bạn có thể chèn mã vào dự án sử dụng phiên bản mới nhất của thư viện. Điều này giúp GitHub Copilot bắt đầu đề xuất các đoạn mã sử dụng phiên bản mới nhất của thư viện. Khi GitHub Copilot đã học cách sử dụng phiên bản thư viện mới, bạn có thể xóa mã mẫu.
Luôn nhất quán và giữ cho thanh chất lượng cao
GitHub Copilot sẽ bám vào mã của bạn để tạo ra các đề xuất tuân theo mẫu hiện có, vì vậy câu ngạn ngữ "rác vào, rác ra" được áp dụng.
Luôn giữ thanh chất lượng cao có thể thực hiện kỷ luật. Đặc biệt là khi bạn mã hóa nhanh và lỏng lẻo để có được một cái gì đó làm việc. Bạn có thể muốn tắt hoàn thành GitHub Copilot khi ở chế độ "hack". Bạn có thể tạm thời tắt các thao tác hoàn thành từ trình đơn trạng thái GitHub Copilot (có thể truy cập từ thanh trạng thái của Visual Studio Code).
Tận dụng tối đa GitHub Copilot Chat
Khi bạn đang sử dụng các tính năng trò chuyện của GitHub Copilot, có một số điều bạn có thể làm để tối ưu hóa trải nghiệm của mình.
Bắt đầu chung, sau đó nhận thông tin cụ thể
Khi viết lời nhắc cho GitHub Copilot, trước tiên hãy cung cấp cho GitHub Copilot một mô tả rộng rãi về mục tiêu hoặc kịch bản. Sau đó, liệt kê mọi yêu cầu cụ thể. Hãy xem xét các lời nhắc sau đây:
- Viết một hàm cho tôi biết một số có phải là số nguyên tố không.
- Hàm phải lấy một số nguyên và trả về true nếu số nguyên là số nguyên.
- Hàm sẽ trả về lỗi nếu đầu vào không phải là số nguyên dương.
Đưa ra ví dụ
Sử dụng các ví dụ để giúp GitHub Copilot hiểu những gì bạn muốn. Bạn có thể cung cấp dữ liệu đầu vào mẫu, đầu ra ví dụ và thực hiện ví dụ.
Ngắt các tác vụ phức tạp thành các tác vụ đơn giản hơn
Nếu bạn muốn GitHub Copilot hoàn thành một nhiệm vụ phức tạp hoặc lớn, hãy chia nhiệm vụ thành nhiều nhiệm vụ đơn giản, nhỏ. Ví dụ: thay vì yêu cầu GitHub Copilot tạo câu đố tìm từ, hãy chia quy trình thành các nhiệm vụ nhỏ hơn và yêu cầu GitHub Copilot hoàn thành từng nhiệm vụ một:
- Viết hàm để tạo lưới chữ 10 nhân 10.
- Viết hàm để tìm tất cả các từ trong lưới chữ cái, đưa ra danh sách các từ hợp lệ.
- Viết hàm sử dụng các hàm trước đó để tạo lưới chữ 10 nhân 10 có chứa ít nhất 10 từ.
- Cập nhật hàm trước để in lưới chữ cái và 10 từ ngẫu nhiên từ lưới.
Tránh sự mơ hồ
Tránh thuật ngữ không rõ ràng. Ví dụ: đừng hỏi "cái này làm gì" khi "cái này" có thể là tệp hiện tại, phản hồi GitHub Copilot cuối cùng hoặc một khối mã cụ thể. Thay vì sử dụng thuật ngữ không rõ ràng, hãy cụ thể: Hàm createUser làm gì?
Chỉ ra mã liên quan
Nếu bạn đang sử dụng GitHub Copilot Chat trong IDE của mình, hãy mở (các) tệp hoặc đánh dấu mã mà bạn muốn GitHub Copilot tham chiếu. Sử dụng người dự cuộc trò chuyện, lệnh sổ chéo và biến trò chuyện trong lời nhắc để xác định ngữ cảnh. Ví dụ: chỉ định tệp nào mà GitHub Copilot Chat sẽ tham chiếu.
Sử dụng người dự trò chuyện, lệnh sổ chéo và biến trò chuyện
Người tham gia trò chuyện được thiết kế để thu thập ngữ cảnh bổ sung về cơ sở mã hoặc miền hoặc công nghệ cụ thể. Khi bạn chỉ định người tham gia thích hợp, GitHub Copilot Chat có thể tìm và cung cấp thông tin tốt hơn để gửi đến phần phụ trợ GitHub Copilot. Ví dụ: sử dụng @vscode khi bạn đặt câu hỏi về các tính năng và API Visual Studio Code.
Các lệnh gạch chéo giúp GitHub Copilot Chat hiểu ý định của bạn khi bạn đặt câu hỏi. Bạn đang tìm hiểu về cơ sở mã (/explain), bạn có muốn trợ giúp khắc phục sự cố (/fix), hay bạn đang tạo các trường hợp thử nghiệm (/tests)? Bằng cách cho GitHub Copilot Chat biết bạn đang cố gắng làm gì, nó có thể điều chỉnh câu trả lời cho tác vụ của bạn và cung cấp các lệnh, cài đặt và đoạn mã hữu ích.
Người tham gia trò chuyện, chẳng hạn như @terminal hoặc @vscode, có thể đóng góp các biến trò chuyện cung cấp ngữ cảnh dành riêng cho miền. Bạn có thể tham chiếu biến trò chuyện trong lời nhắc trò chuyện của mình bằng cách sử dụng biểu tượng này # . Bạn có thể sử dụng các biến trò chuyện để cụ thể hơn về ngữ cảnh lời nhắc của bạn.
Ví dụ: #file biến chat cho phép bạn tham chiếu các tệp cụ thể từ không gian làm việc trong lời nhắc trò chuyện. Điều này giúp làm cho câu trả lời từ GitHub Copilot Chat phù hợp hơn với mã của bạn bằng cách cung cấp ngữ cảnh về tệp bạn đang làm việc. Bạn có thể đặt các câu hỏi như "Can you suggest improvements to #file:package.json?" hoặc "How do I add an extension in #file:devcontainer.json?". Sử dụng biến #file có thể giúp bạn nhận được phản hồi chính xác và được nhắm mục tiêu hơn từ GitHub Copilot.
Thử nghiệm và tái diễn
Nếu bạn không nhận được kết quả mong muốn, hãy nhập vào lời nhắc của bạn và thử lại. Tham khảo phản hồi trước đó trong yêu cầu tiếp theo của bạn. Bạn cũng có thể xóa câu trả lời trước đó và bắt đầu lại từ đầu.
Giữ lịch sử liên quan
GitHub Copilot Chat sử dụng lịch sử trò chuyện để lấy ngữ cảnh về yêu cầu của bạn. Để đảm bảo rằng GitHub Copilot đang sử dụng lịch sử trò chuyện có liên quan:
- Sử dụng chuỗi hội thoại để bắt đầu cuộc hội thoại mới cho nhiệm vụ mới.
- Xóa các yêu cầu không còn liên quan hoặc không cung cấp cho bạn kết quả mong muốn.
Làm theo các phương pháp mã hóa hiệu quả
Nếu bạn không nhận được phản hồi như mong muốn khi yêu cầu GitHub Copilot đề xuất, hãy đảm bảo rằng mã hiện tại của bạn tuân theo các phương pháp hay nhất và dễ đọc. Chẳng hạn:
- Sử dụng kiểu và mẫu mã nhất quán.
- Sử dụng tên mô tả cho các biến và hàm.
- Nhận xét mã của bạn.
- Cấu trúc mã của bạn thành các cấu phần mô-đun, có phạm vi.
- Bao gồm xét nghiệm đơn vị.
Tóm tắt
GitHub Copilot là một công cụ mạnh mẽ có thể giúp bạn viết mã nhanh hơn và ít lỗi hơn. Tuy nhiên, để tận dụng tối đa GitHub Copilot, bạn cần làm theo các phương pháp hay nhất. Bằng cách chọn công cụ GitHub Copilot phù hợp cho công việc, cung cấp ngữ cảnh và tuân theo các phương pháp viết mã tốt, bạn có thể tối ưu hóa trải nghiệm của mình với GitHub Copilot.