Github Copilot là một extension khá phổ biến được phát triển bởi Github và OpenAI, điều này giúp nó tích hợp sâu với Github và VS code. Và cũng nhờ đó mà cho phép Copilot dễ dàng truy cập vào các repositories để nhận biết ngữ cảnh và phong cách code của từng dự án và đưa ra gợi ý phù hợp và chính xác hơn. Trtong khi đó, nhiều AI extension khác không có mức độ tích hợp này, mà chỉ hoạt động như các tiện ích độc lập mà không thể hiểu sâu về ngữ cảnh của dự án. Điều giúp Copilot được đánh giá là thông minh đó là nó cập nhật liên tục và học tập dữ liệu mới từ các kho mã nguồn trên Github, điều này giúp nó không ngừng nâng cao hiệu suất và độ chính xác.
Trong bài viết này, mình sẽ cùng các bạn tìm hiểu về tính năng của Copilot extension trên VS code và cách để sử dụng extension này một cách hiệu quả vào trong dự án thực tế của các bạn.
Cài đặt Github Copilot
Đầu tiên, để install extension rất đơn giản, bạn cần bật Extension view trên thanh công cụ bên trái hoặc sử dụng phím tắt Ctrl + Shift + X
, nhập vào thanh tìm kiếm Copilot
, bạn sẽ thấy được extension gợi ý:
![](https://vinalinux.com.vn/wp-content/uploads/2024/08/image-1024x519.png)
VS Code gợi ý hai extension là: Github Copilot và Github Copilot Chat. Sự khác nhau ở đây đó là Github Copilot extension bao gồm cả inline code suggestion và AI assistant (Copilot Chat), vì vậy mình đề xuất sử dụng Github Copilot extension đầu tiên. Sau khi cài đặt xong, VS Code sẽ hiện thị pop up yêu cầu đăng nhập vào tài khoản github của bạn để sử dụng được extension này.N
Những tính năng cơ bản của Github Copilot
Copilot là một công cụ AI hỗ trợ lập trình viên với những tính năng nổi bật sau:
- Boilerplate code: Copilot khá hiệu quả trong việc tạo ra mã soạn sẵn, sử dụng cho các tác vụ thông thường như tạo class, các function tiêu chuẩn hoặc các mẫu code lặp đi lặp lại
- Autocomplete: Copilot có thể dự đoán một số dòng mã tiếp theo, bạn chỉ cần sử dụng phím
tab
để chấp nhận đoạn mã Copilot đề xuất hoặcEsc
để loại bỏ - Learning and Exploration: Khi bạn không chắc chắn cề cách triển khai điều gì đó, Copilot có thể cung cấp gợi ý. Ví dụ, bạn có thể comment như sau
// fetch data from api
và Copilot sẽ kích hoạt tạo một hàm HTTP request
Bạn có thể sử dụng Copilot trong một source dự án lớn. Ví dụ, bạn có thể chọn một file code trong dự án của mình, nhấn chuột phải và chọn Copilot -> Add file to chat. Ngay lập tức tất cả đoạn code trong trong file được chọn sẽ được đưa vào đoạn chat và Copilot sẽ đưa cho bạn một số gợi ý như optimize hoặc giải thích đoạn code đó.
![](https://vinalinux.com.vn/wp-content/uploads/2024/08/image-1-1024x562.png)
Hoặc bạn có thể gõ /
Copilot sẽ gợi ý command với các options như: @terminal, @workspace, @vscode… Khi bạn sử dụng context như @workspace tức là bạn đang đề cập đến môi trường và context được tích hợp trên IDE (cụ thể ở đây là VS Code). Khi bạn mở thư mục gốc của dự án trên VS Code thì Copilot có thể tương tác với các tệp có trong context này, có nghĩa là Copilot đã đọc hiểu bối cảnh trong dự án mà bạn đang mở trên IDE vì vậy khi bạn hỏi một vần để liên quan đến dự án bạn cần đề cập đến @workspace này thì Copilot sẽ cung cấp thông tin chi tiết hơn và sát với dự án của bạn. Ngoài ra các context khác như: @terminal hay @vscode cũng như vậy tuy nhiên thì context @terminal thì đang đề cập đến bối cảnh là file được mở trên terminal còn @vscode thì là các file đang được mở trên IDE, tức là phạm vi bối cảnh của chúng hẹp hơn so với @workspace.
![](https://vinalinux.com.vn/wp-content/uploads/2024/08/image-3-1024x545.png)
Ngoài ra, Copilot có thể nhận biết được các function hoặc các component mà trong đoạn code gọi đến (được định nghĩa bên ngoài file code mà bạn chọn). Ví dụ bên dưới, Copilot link đến những method mà bạn sử dụng trong đoạn code, chỉ cần click chuột vào method đó, Copilot có thể tự tim được đến file mà bạn định nghĩa method đó.
![](https://vinalinux.com.vn/wp-content/uploads/2024/08/image-4-1024x488.png)
Github Copilot đọc hiểu cấu trúc dự án
Giả sử khi bạn mới join vào một dự án nào đó và cần tìm hiểu về cấu trúc cũng như phong cách code của dự án đó thì đây là một tính năng rất hữu ích mà Github Copilot cung cấp. Tuy nhiên Github Copilot không thể truy cập được thư mục dự án của bạn để đọc toàn bộ source code, chính vì vậy bạn cần cung cấp thông tin về toàn bộ files trong dự án của bạn cho AI extension này. Cụ thể bạn cần nhập command sau: find . -type d
hoặc tree
vào terminal từ thư mục gốc của dự án như ví dụ dưới đây:
![](https://vinalinux.com.vn/wp-content/uploads/2024/08/image-5-1024x731.png)
Terminal sẽ list toàn bộ files trong dự án của bạn, lúc này bạn copy toàn bộ vào đoạn chat với Github Copilot và yêu cầu giải thích. Copilot sẽ mô tả lại dự án được cấu trúc ra sao và lấy ví dụ vào một chức năng cụ thể, bạn cũng có thể yêu cầu Copilot giải thích chức năng hoặc module khác trong dự án mà bạn muốn.
![](https://vinalinux.com.vn/wp-content/uploads/2024/08/image-6-1024x539.png)
Nhìn chung, Github Copilot là một công cụ mạnh mẽ không chỉ hỗ trợ viết code mà còn mang đến nhiều chức năng hữu ích khác như debug, testing, và nhiều hơn nữa. Khả năng gợi ý thông minh và linh hoạt của Copilot giúp tăng cường hiệu suất làm việc và giảm bớt gánh nặng công việc cho lập trình viên. Hãy dành thời gian khám phá thêm các tính năng này để tận dụng tối đa tiềm năng mà Github Copilot mang lại cho bạn. Đó sẽ là một bước tiến lớn trong việc cải thiện trải nghiệm lập trình của bạn và mở ra những cơ hội mới cho sự phát triển kỹ năng cá nhân.