GitHub Copilot bổ sung gì vào quy trình đánh giá

Đã hoàn thành

Đánh giá mã và đánh giá yêu cầu kéo là điều cần thiết cho chất lượng, nhưng chúng cũng có thể tốn thời gian và không đồng đều. Các nhà phát triển thường tung hứng nhiều ngôn ngữ, định dạng không nhất quán và sự khác biệt lớn trong khi cố gắng cung cấp phản hồi chu đáo. GitHub Copilot giúp giảm bớt khối lượng công việc này bằng cách hoạt động như một người đánh giá và trợ lý cộng tác. Nó nắm bắt các vấn đề phổ biến, soạn thảo xem xét nhận xét, tóm tắt các yêu cầu kéo và thậm chí làm nổi bật rủi ro bảo mật - cung cấp cho người đánh giá một điểm khởi đầu rõ ràng. Với hướng dẫn đánh giá tùy chỉnh, bạn có thể hướng dẫn Copilot theo dõi các mẫu tương tự mà bạn thực hiện, đảm bảo tính nhất quán giữa các nhóm và kho lưu trữ.

Khi kết thúc bài học này, bạn sẽ có thể:

  • Xác định các tính năng chính của Copilot trong đánh giá mã.
  • Giải thích cách PRU mở khóa khả năng đánh giá nâng cao.
  • Nhận ra các cách khác nhau để Copilot đánh giá bổ sung và giúp các nhà phát triển.

Các tính năng chính của Copilot trong đánh giá mã

Copilot giới thiệu một số tính năng được thiết kế để hợp lý hóa các bài đánh giá:

  • Tóm tắt PR: Copilot có thể tự động soạn thảo mô tả yêu cầu kéo bao gồm tóm tắt rõ ràng về các thay đổi và danh sách các tệp bị ảnh hưởng. Điều này đảm bảo người đánh giá bắt đầu với ngữ cảnh, không phải phỏng đoán.

  • Các bản sửa lỗi bảo mật: Với tính năng xem xét mã Copilot được tích hợp vào Quét mã GitHub, các lỗ hổng được gắn cờ trên các ngôn ngữ. Ví dụ: trong JavaScript, Copilot có thể phát hiện đầu vào chưa được vệ sinh được chuyển đến eval() và nhận xét:

    "eval() với đầu vào của người dùng có thể dẫn đến việc chèn mã. Thay thế nó bằng một trình phân tích cú pháp an toàn như JSON.parse()." Sau đó, nó cung cấp một bản vá nội tuyến phù hợp với nguyên tắc bảo mật của kho lưu trữ của bạn.

  • Giải thích từng dòng: Người đánh giá có thể đánh dấu mã và yêu cầu Copilot giải thích chức năng, giúp họ hiểu mã không quen thuộc một cách nhanh chóng.

  • Soạn thảo nhận xét: Copilot có thể tạo nhận xét đánh giá dựa trên các phương pháp hay nhất hoặc hướng dẫn của nhóm, làm cho phản hồi rõ ràng và có thể hành động.

  • Đánh giá trong IDE của bạn: Ngoài việc làm việc trực tiếp trên GitHub.com, Copilot cũng có thể xem lại mã bên trong IDE của bạn. Điều này cho phép các nhà phát triển nắm bắt và giải quyết các vấn đề trước khi mở yêu cầu kéo, tăng tốc quy trình và giảm thời gian làm lại.

Hiểu cách PRU mở khóa khả năng đánh giá nâng cao

PRU cung cấp năng lượng cho các khả năng tiên tiến này. Ví dụ: chỉ định Copilot làm người đánh giá PR sử dụng PRU mỗi khi nó đăng nhận xét. Khi kết hợp với các tệp tùy chỉnh .github/copilot-instructions.md , các đánh giá do PRU cung cấp phù hợp với các quy tắc của nhóm bạn, cho dù chúng tập trung vào khả năng đọc, bảo mật hay phong cách.

Ví dụ:

Nếu không có Copilot, PR có thể bao gồm các nhận xét mơ hồ từ người đánh giá như "Khắc phục sự cố bảo mật tại đây". Với sự trợ giúp của Copilot + PRU, bài đánh giá trở thành:

"Việc sử dụng của exec() giới thiệu một lỗ hổng chèn mã. Cân nhắc thay thế nó bằng subprocess.run() để thực thi lệnh an toàn hơn. Đây là một bản vá được đề xuất:"

Và nó cung cấp bản sửa mã nội tuyến.

Năm cách khác nhau Đánh giá Copilot giúp các nhà phát triển

Tiếp theo, chúng tôi sẽ xem xét cách đánh giá Copilot có thể giúp bạn làm việc thông minh hơn với:

  • Đề xuất đánh giá mã
  • Đánh giá Copilot trên nhiều ngôn ngữ
  • Định dạng dữ liệu trong Pull request
  • Viết tóm tắt yêu cầu kéo hiệu quả
  • Giải thích và xem xét mã

Sử dụng đề xuất Copilot trong đánh giá mã

Khi bạn đang xem xét một yêu cầu kéo, bạn có thể phát hiện ra những lĩnh vực có thể được cải thiện nhưng không có thời gian để tự mình soạn thảo ví dụ hoặc đoạn trích hoàn hảo. GitHub Copilot giúp lấp đầy khoảng trống đó mà không cần tiếp quản tác phẩm của tác giả. Bên trong chế độ xem "Tệp đã thay đổi" yêu cầu kéo, bạn có thể đánh dấu một dòng hoặc khối mã và yêu cầu Copilot đề xuất các cải tiến hoặc gắn cờ các vấn đề tiềm ẩn. Sau đó, Copilot tạo ra một đề xuất cụ thể, nhận biết ngữ cảnh mà bạn có thể sao chép vào nhận xét đánh giá của mình, làm cho phản hồi của bạn rõ ràng hơn và dễ dàng hơn cho tác giả hành động.

Ví dụ: trong khi xem lại tệp Ruby với logic lặp lại, bạn có thể đánh dấu các dòng có liên quan và hỏi:

"Đề xuất một tái cấu trúc Ruby sạch hơn cho mã lặp lại này."

Copilot sẽ đề xuất một phiên bản cập nhật tuân theo các phương pháp hay nhất phổ biến của Ruby. Bạn có thể dán đề xuất của nó (hoặc một phần của nó) vào nhận xét đánh giá cùng với lời giải thích của riêng bạn. Điều này giúp bạn tập trung vào chất lượng và thiết kế tổng thể trong khi vẫn cung cấp cho tác giả phản hồi có giá trị cao, có thể hành động mà không làm mờ ranh giới giữa đánh giá và mã hóa thay mặt họ.

Đánh giá bằng nhiều ngôn ngữ

Khi bạn yêu cầu đánh giá mã, Copilot có thể tự động làm nổi bật các lĩnh vực không tuân theo các phương pháp hay nhất hoặc nguyên tắc nhóm

Copilot sẽ nhanh chóng tạo ra các cải tiến phù hợp với các quy ước của ngôn ngữ, cho phép bạn đưa ra phản hồi đánh giá mạnh mẽ hơn, chính xác hơn ngay cả bên ngoài lĩnh vực chuyên môn chính của bạn.

Ảnh chụp màn hình của yêu cầu kéo GitHub hiển thị đề xuất mã để thay thế khai báo biến bằng khai báo biến ngắn trong chương trình Go.

Định dạng dữ liệu cho yêu cầu kéo

Yêu cầu kéo rõ ràng hơn nhiều khi chúng bao gồm ngữ cảnh được định dạng tốt như chỉ số, ảnh chụp màn hình hoặc kết quả thử nghiệm. Tuy nhiên, các nhóm thường quên định dạng nội dung này một cách nhất quán. GitHub Copilot có thể hoạt động như một cặp mắt thứ hai trong quá trình xem xét mã, tự động gắn cờ các bảng có định dạng kém trong mô tả yêu cầu kéo và đề xuất phiên bản sạch hơn phù hợp với nguyên tắc phong cách của công ty bạn.

Ví dụ: Nhà phát triển gửi yêu cầu kéo với bảng thời gian tải trang sau đây. Thật khó đọc và không tuân theo hướng dẫn phong cách Markdown của nhóm:

Chạy thử Thời gian tải trước Thời gian tảiSau
1.3 1.2
1.2 1.1
1.1 0.885
1.3 1.3
1.2 0.918
Average 1.22 1.0806

Trong quá trình đánh giá, Copilot đăng một bình luận:

"Bảng này không tuân theo hướng dẫn Markdown của kho lưu trữ của bạn. Đây là phiên bản được dọn dẹp dựa trên hướng dẫn phong cách của công ty bạn."

Và nó bao gồm một phiên bản đã sửa sẵn sàng để dán vào mô tả PR:

Chạy thử Thời gian tải trước (giây) Thời gian tải sau khi cập nhật (giây)
1 1.3 1.2
2 1.2 1.1
3 1.1 0.885
Tệp 4 1.3 1.3
5 1.2 0.918
Trung bình 1.22 1.0806

Người đánh giá có thể chấp nhận đề xuất của Copilot chỉ bằng một cú nhấp chuột, đảm bảo PR tuân theo phong cách công ty mà không mất thời gian định dạng lại.

Điều này cho thấy Copilot hoạt động như một người đánh giá tự động (không phải là tác nhân mã hóa): nó nhìn thấy bảng chưa được định dạng, áp dụng các hướng dẫn của công ty từ .github/copilot-instructions.mdvà cung cấp phiên bản đã sửa cùng dòng.

Viết tóm tắt yêu cầu kéo hiệu quả

Viết mô tả PR thường là bước cuối cùng trong quá trình và có thể cảm thấy như một trở ngại. Copilot làm cho việc này dễ dàng hơn. Từ trình chỉnh sửa mô tả PR, bạn có thể sử dụng biểu tượng Copilot để tạo bản tóm tắt hoặc dàn ý nháp. Ngay cả khi bạn thực hiện chỉnh sửa, việc có một điểm khởi đầu có cấu trúc tốt sẽ tiết kiệm thời gian và đảm bảo người đánh giá có thông tin họ cần.

Ảnh chụp màn hình của yêu cầu kéo GitHub hiển thị hộp nhận xét với các tùy chọn GitHub Copilot để tạo bản tóm tắt hoặc phác thảo các thay đổi.

Giải thích và xem lại mã

Đôi khi bạn có thể không quen thuộc với mã trong một yêu cầu kéo. Thay vì vật lộn với nó, bạn có thể yêu cầu Copilot giải thích những thay đổi. Copilot cũng có thể chạy đánh giá ban đầu về PR của riêng bạn trước khi bạn yêu cầu phản hồi từ đồng đội. Điều này giúp nắm bắt các vấn đề nhỏ hơn, xác thực các phương pháp hay nhất và giúp bạn tự tin hơn vào chất lượng bài gửi.

Bây giờ bạn đã biết Copilot có khả năng gì khi đánh giá mã. Tiếp theo, hãy xem cách sử dụng các bài đánh giá Copilot trực tiếp trên GitHub.com.