Khai thác tối đa từ GitHub Copilot
Khi GitHub Copilot được phát hành, tôi đã ngay lập tức dùng thử. Những tuyên bố dường như quá tốt để trở thành sự thật.
Những gì tôi tìm thấy là ngược lại - nó tốt hơn quảng cáo. Tôi đã bị cuốn hút bởi nó đến nỗi tôi… thậm chí còn không tweet về nó. Tôi nghĩ rằng đó là một lợi thế quá lớn để cho đi miễn phí!
Tôi nhận thấy Copilot có sức ảnh hưởng lớn đến mức, khi chúng tôi rút lui nhóm năm 2021, tôi đã dành một phần đầy đủ về bài thuyết trình CTO của mình cho Copilot. Việc sử dụng Copilot đã trở nên gần như “bắt buộc” giống như bất kỳ công cụ nào có tại Infinite Red. Đó là một công cụ thay đổi cuộc chơi lớn.
Copilot làm gì cho quy trình viết mã của tôi
Tôi là một người viết mã khá nhanh trong những trường hợp bình thường; Phi công phụ tăng gấp đôi tốc độ của tôi.
Tôi bị ADHD nhẹ và một trong những khó khăn lớn nhất của tôi là tập trung. Khi tôi đạt đến "trạng thái dòng chảy", tôi không thể ngăn cản. Tôi không nghĩ là mình đơn độc đấu tranh với vấn đề này, nhưng ngay cả khi bạn không làm thế, bạn vẫn có thể có những lúc gần như “lạc đề” và cần được nhắc nhở.
Tôi nhận thấy rằng quy trình mã hóa lý tưởng của mình luôn liên quan đến việc ghép nối. Một cặp tốt giúp tôi tập trung, dự đoán những gì cần thiết tiếp theo, đưa ra gợi ý và kiên nhẫn với tôi. Phi công phụ sẽ tự động hoàn thành vai trò đó. Tôi sẽ viết một đoạn mã nào đó, đánh vào một điểm nào đó mà não tôi đang cố gắng chuyển sang chủ đề khác, nhưng khoảng dừng nhẹ đó cũng đủ để Copilot bật ra một gợi ý, từ đó kích hoạt sự tập trung của tôi trở lại.
Hạn chế của phi công phụ
Một sai lầm phổ biến là nhận được kết quả kém từ Copilot và đổ lỗi cho công cụ. Phi công phụ không viết mã cho bạn chính xác như cách bạn cần trong hầu hết các trường hợp. Nó hoạt động tốt nhất dựa trên bối cảnh, manh mối và lượng dữ liệu đào tạo mà nó có quyền truy cập. Và giống như bất kỳ công cụ nào, bạn cần học cách sử dụng nó để tận dụng tối đa nó.
Hãy nói về những cách để tận dụng tối đa Copilot.
Viết bình luận hàng đầu cho bối cảnh
Bối cảnh rất quan trọng, đối với cả lập trình viên cặp đôi và trợ lý viết mã AI. Bắt đầu bằng cách viết một nhận xét rõ ràng, bằng tiếng Anh đơn giản, cung cấp một ý tưởng hay về chức năng của một hàm, những đối số mà nó nhận, những gì nó sẽ trả về. Nếu bình luận của bạn mơ hồ, mong đợi kết quả mơ hồ:
Một nhận xét tốt hơn sẽ cung cấp cho Copilot thông tin tốt hơn:
Đừng ngần ngại quay lại và chỉnh sửa nhận xét của bạn cho đến khi bạn nhận được kết quả mong muốn. Tất nhiên, bạn có thể chỉnh sửa mã bằng tay, nhưng nếu bạn viết tốt các nhận xét mô tả, nó cũng sẽ hoạt động tốt hơn với mã trong tương lai.
Trong trường hợp này, việc thêm “Hàm đã nhập” đã giới thiệu các loại vào các đối số của hàm.
Những nhận xét này không nhất thiết phải dành cho người đọc mã của con người, mặc dù chúng có thể đọc được. Tôi luôn quay lại và tinh chỉnh chúng cho người đọc sau khi hoàn thành.
Tìm hiểu các phím tắt
Nếu bạn đang sử dụng Mã VS, bạn có thể tìm thấy danh sách các phím tắt tại đây .
- Chấp nhận đề xuất nội tuyến:
Tab - Loại bỏ đề xuất nội tuyến:
Esc - Hiển thị đề xuất nội tuyến tiếp theo:
Option (⌥)+] - Hiển thị đề xuất nội tuyến trước đó:
Option (⌥)+[ - Kích hoạt đề xuất nội tuyến:
Option (⌥)+\ - Mở GitHub Copilot:
Ctrl+Return
Những cái tôi sử dụng nhiều nhất, ngoài Tab/ Esc, là Option+[và ]. Điều này cho phép tôi duyệt qua các đề xuất cho đến khi tôi có đề xuất hữu ích nhất.
Cung cấp cấu trúc Copilot để làm việc với
Đôi khi Copilot sẽ nội tuyến nội dung mà bạn thực sự muốn trích xuất thành chức năng của trình trợ giúp. Loại bỏ hoàn toàn hàm đã tạo, trước tiên hãy xây dựng hàm trợ giúp và Copilot thường sẽ chọn và sử dụng nó trong tương lai.
Điều này áp dụng cho những thứ khác, chẳng hạn như các giá trị hằng số được mã hóa cứng. Thêm các biến được đặt tên phù hợp ngay phía trên mã được tạo và Copilot sẽ tích hợp chúng.
Copilot có thể trợ giúp với các lệnh CLI
Nếu bạn giống tôi và không thể nhớ nhiều lệnh git, Copilot cũng có thể giúp bạn với những lệnh đó.
Trong một tab trống, viết một cái gì đó như thế này:
Nó không hoàn hảo, nhưng nó sẽ cung cấp cho bạn đủ manh mối để đưa bạn đến gần!
Copilot rất giỏi trong các nhiệm vụ lặp đi lặp lại, như viết bài kiểm tra
Một trong những khoảnh khắc khiến tôi sửng sốt nhất khi phát trực tuyến là khi Copilot viết các bài kiểm tra chính xác cho một tính năng khá phức tạp mà tôi đang xây dựng. Hãy xem (dấu thời gian 2:23:00):
Phi công phụ cũng có thể viết nhận xét cho bạn!
Trong khi viết bình luận có thể giúp Copilot viết mã, viết mã cũng có thể giúp Copilot viết bình luận!
Nếu bạn có mã hiện có và cần ghi lại mã đó, Copilot thường sẽ có một số ý tưởng về mã đó là gì.
Copilot có thể giải thích mã cho bạn (thông qua Copilot Labs)
Nếu bạn cài đặt tiện ích mở rộng Copilot Labs, bạn có thể mở nó trong bảng điều khiển bên cạnh, đánh dấu một khối văn bản và Copilot sẽ cố gắng hết sức để giải thích cho bạn bằng tiếng Anh đơn giản.
Tôi không thấy điều này hữu ích lắm vì tôi có thể đọc mã trôi chảy, nhưng nó có thể hữu ích nếu một số mã đặc biệt khó hiểu.
Copilot có thể giúp bạn học một ngôn ngữ lập trình mới
Khi tôi đang xây dựng react-native-colo-loco , tôi phải viết một tập lệnh Gradle, được viết bằng Groovy. Tôi biết một chút Groovy, nhưng không nhiều. Vì vậy, tôi tập trung vào việc viết các nhận xét rõ ràng, chính xác và để Copilot gợi ý các dòng mã. Sau đó, tôi có thể dựa vào kinh nghiệm phát triển của mình để tiếp thu các mẫu và cú pháp, rồi bắt đầu từ đó.
Bạn có thể xem kết quả tại đây (Tôi đã để lại gần như tất cả các nhận xét hàng đầu của Copilot để cho biết chúng là gì).
Nếu mã của Copilot bị tắt, hãy tiếp tục xây dựng
Copilot thích bối cảnh. Bạn càng xây dựng nhiều, nó càng có nhiều ngữ cảnh và càng trở nên hữu ích. Khi tôi quyết định xây dựng lại một phần của MobX-State-Tree , Copilot cực kỳ hữu ích vì nó có thể kiểm tra phần còn lại của cơ sở mã. (Bộ tái cấu trúc chưa bao giờ được xuất xưởng, nhưng đó là một bài tập tuyệt vời trong học tập.)
Vẫn còn sớm, nhưng tôi khá lạc quan về GitHub Copilot. Nếu bạn có các mẹo khác, hãy cho tôi biết trên Twitter !
Sự nhìn nhận:
- Cảm ơn Rizèl Scarlett vì bài nói chuyện của cô ấy về Copilot tại đây (cũng đáng xem!):https://www.youtube.com/watch?v=CuQSoHbOpTQ
- Cảm ơn Marie Prokopets vì bài viết xuất sắc của cô ấy về Copilot (bạn cũng nên đọc bài này!):https://nira.com/github-copilot/
- Cảm ơn Jenna Fucci vì hình ảnh tuyệt vời ở đầu bài viết này!

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































