Giới thiệu
Trong thế giới lập trình, việc kiểm tra mã là một phần không thể thiếu nhưng lại tiêu tốn thời gian quý báu mà bạn có thể dành cho việc lập trình. Tuy nhiên, với sự xuất hiện của Gemini Code Assist, bạn có thể tự động hóa quy trình này mà không tốn kém chi phí. Đây là một ứng dụng miễn phí dành cho GitHub, hoạt động như một đồng nghiệp ảo, giúp bạn kiểm tra Pull Requests (PR), chỉ ra những điểm cần cải thiện và đưa ra các gợi ý thực tiễn. Hãy cùng khám phá cách mà Gemini Code Assist có thể biến việc kiểm tra mã trở nên đơn giản hơn bao giờ hết.
1. Cài đặt Gemini Code Assist
Để bắt đầu sử dụng Gemini Code Assist, hãy làm theo các bước sau:
- Truy cập Marketplace của GitHub.
- Nhấn vào nút "Install" ở cuối trang và cấp quyền truy cập. Bạn có thể chọn các kho lưu trữ mà bot sẽ kiểm tra (cá nhân tôi đã kích hoạt cho tất cả các kho của mình, nhưng bạn có thể chọn theo ý thích).
- Chấp nhận Điều Khoản Dịch Vụ của Google và xong! Bot
gemini-code-assist[bot]đã sẵn sàng hoạt động.
Tùy chỉnh bot theo phong cách của bạn
Để bot không đưa ra những gợi ý chung chung và tránh mất thời gian với các tệp không cần thiết, hãy tạo một thư mục .gemini/ tại thư mục gốc của dự án của bạn và điều chỉnh cấu hình. Thư mục này nên chứa hai tệp sau:
styleguide.md: Tệp này sẽ đặt ra quy tắc cho bạn. Nó được sử dụng để định nghĩa các tiêu chuẩn mà mã của bạn cần tuân thủ.
Ví dụ về styleguide.md:
# Quy Tắc Của Chúng Tôi
- Chúng tôi sử dụng TypeScript. Kiểu `any` bị cấm và có thể dẫn đến việc từ chối PR.
- Trong React, các thành phần hàm là quy định.
- Không sử dụng "số ma" không rõ ràng trong mã. Hãy tạo ra các hằng số, vì lý do gì đó.
Đây chỉ là một ví dụ hài hước, nhưng bạn có thể đưa vào các quy tắc cụ thể hơn như nguyên tắc SOLID, Object Calisthenics, và các phương pháp tốt nhất của ngôn ngữ bạn đang sử dụng.
Đừng quên rằng styleguide.md cung cấp ngữ cảnh cho cách mà Gemini tương tác với mã của bạn, vì vậy hãy rõ ràng về công nghệ mà bạn đang sử dụng, có thể là Go, Node, React, v.v.
config.yaml: Tại đây, bạn có thể xác định hành vi tổng quát của bot, bao gồm những gì mà bot nên bỏ qua.
Ví dụ về config.yaml và ý nghĩa của từng thuộc tính:
have_fun: true # Tùy chọn này không ảnh hưởng đến hoạt động, chỉ làm cho môi trường nhẹ nhàng hơn. Nếu bạn không thích sự hài hước, hãy đặt thành false.
code_review:
# Tại đây bạn xác định mức độ nghiêm trọng mà bot sẽ chỉ ra các sai lệch so với styleguide.md, trong ví dụ dưới đây, bot sẽ bắt đầu chỉ ra từ mức độ trung bình.
comment_severity_threshold: MEDIUM # Các mức độ gồm LOW - MEDIUM - HIGH - CRITICAL
max_review_comments: 10 # Giới hạn số lượng bình luận cho mỗi lần kiểm tra
# Danh sách các tệp và thư mục mà Gemini nên bỏ qua trong quá trình kiểm tra. Hoạt động giống như .gitignore
ignore_patterns:
- frontend/node_modules/**
- frontend/dist/**
- frontend/**/*.spec.ts
pull_request_opened:
summary: true # Nếu bạn muốn một tóm tắt các thay đổi khi PR được mở, hãy đặt thành true.
code_review: true # Để nhấn mạnh rằng bạn muốn bot thực hiện kiểm tra mã.
2. Quy trình hoạt động của Gemini
Khi một PR được mở, Gemini ngay lập tức vào cuộc. Chỉ trong khoảng 5 phút, nó sẽ cung cấp:
- Tóm tắt PR: Một bản tóm tắt các thay đổi, lý tưởng cho những ai không muốn đọc kỹ từng dòng và rất hữu ích cho tài liệu.
- Phân tích mã: Các bình luận inline trên những dòng mà bot nghĩ có thể cải thiện. Nó phân loại mức độ nghiêm trọng (từ
LOWđếnCRITICAL), giải thích lý do và thường xuyên đưa ra gợi ý sửa lỗi sẵn có.
Cần thêm sự trợ giúp?
Bạn có thể sử dụng các lệnh trong các bình luận (điều này rất thú vị) để gọi bot:
| Lệnh | Chức năng |
|---|---|
/gemini review |
“Này, bot! Kiểm tra lại giúp tôi nhé.” |
/gemini summary |
“Tôi bị lạc. Làm ơn tóm tắt lại PR này.” |
@gemini-code-assist |
Cho phép bạn đặt câu hỏi cụ thể về một đoạn mã. |
/gemini help |
“Cứu tôi! Các lệnh là gì nhỉ?” |
3. Lợi ích của Gemini Code Assist
- Tiết kiệm thời gian: Bạn có thể tập trung vào việc lập trình; bot sẽ lo phần kiểm tra. Thật tiện lợi.
- Đảm bảo tính nhất quán của mã: Không còn tình trạng mỗi người một kiểu. Bot sẽ là người giám sát tiêu chuẩn, đảm bảo chất lượng mã theo các quy tắc đã định.
- Học hỏi nhanh chóng: Có thể bạn không ngờ tới, nhưng tôi đã sử dụng nó như một công cụ học tập: tôi đang tìm hiểu sâu hơn về Go và sử dụng các sửa lỗi mà Gemini gợi ý để cải thiện và nhận ra những điểm tôi chưa đúng. Nó chỉ ra lỗi, gợi ý các cách viết mã tốt hơn và giúp tôi hiểu tại sao lại cần những gợi ý đó. Giống như có một giáo viên lập trình riêng vậy. Mã Go mà tôi viết đều đã được kiểm tra bởi Gemini 😲
4. Những nhược điểm cần lưu ý
- Không hoàn hảo: Khi còn trong giai đoạn preview, đôi khi bot có thể đưa ra những gợi ý không hợp lý. Vì vậy, hãy cẩn thận và không nên tin tưởng mù quáng vào AI.
- Hỗ trợ ngôn ngữ: Kiểm tra xem bot có hiểu ngôn ngữ hoặc công nghệ mà dự án của bạn đang sử dụng không.
- Kết nối: Không hoạt động trong các tổ chức GitHub có ràng buộc mạng quá nghiêm ngặt.
5. Một số lời khuyên hữu ích
- Sử dụng như bộ lọc đầu tiên: Hãy để Gemini chỉ ra những vấn đề hiển nhiên. Đối với logic kinh doanh có thể gây lỗi, hãy gọi người thực hiện kiểm tra.
- Bắt đầu từ từ: Sử dụng
comment_severity_threshold: MEDIUMđể không bị ngợp với quá nhiều thông báo ngay từ đầu. - Cung cấp phản hồi cho bot: Sử dụng các biểu tượng cảm xúc 👍 và 👎 trong các bình luận của nó. Điều này giúp AI học hỏi.
- Chú trọng vào
styleguide.md: Quy tắc càng rõ ràng thì các lần kiểm tra càng chính xác. Mẹo vàng: Nếu bạn muốn các tóm tắt và gợi ý xuất hiện bằng tiếng Việt, hãy viếtstyleguide.mdbằng tiếng Việt. Điều này cũng áp dụng cho bất kỳ ngôn ngữ nào khác.
Kết luận
Tóm lại, Gemini Code Assist là một người bạn đồng hành lý tưởng trong việc lập trình, giúp bạn nâng cao kỹ năng cá nhân hoặc hỗ trợ nhóm của bạn duy trì tiêu chuẩn chất lượng mà không gặp phải khó khăn nào. Nó tự động hóa phần việc nhàm chán, giúp bạn học cách lập trình tốt hơn và giữ cho dự án của bạn đi đúng hướng.
Hãy cài đặt, thử nghiệm và để bot làm việc. Trải nghiệm này hoàn toàn xứng đáng.
Nếu bạn đã đọc đến đây, tôi hy vọng rằng bài viết này đã mang lại giá trị cho bạn theo một cách nào đó.
Chỉ cần lập trình!