Quy Trình Tạo Pull Request Tiêu Chuẩn
Dưới đây là quy trình chuẩn để tạo Pull Request (PR) trong nhóm phát triển, giúp đảm bảo mã nguồn chất lượng và giảm thiểu lỗi trong quá trình tích hợp.
1. Chuẩn Bị Mã Nguồn Trước Khi Tạo PR
- Cập nhật branch chính: Đảm bảo branch chính đã được cập nhật mới nhất.
- Tạo branch mới từ branch chính:
- Định dạng tên branch:
feature/<tên-feature>hoặcbugfix/<tên-bug>hoặchotfix/<tên-hotfix> - Ví dụ:
feature/add-user-authentication,bugfix/fix-login-error
- Định dạng tên branch:
2. Commit Code
-
Tên commit rõ ràng: Đảm bảo tên commit ngắn gọn, nêu rõ mục đích và nội dung của commit.
Thêm chức năng xác thực người dùng Sửa lỗi không hiển thị danh sách sản phẩm
-
Tách commit: Nếu làm nhiều thay đổi khác nhau, chia thành nhiều commit để dễ theo dõi lịch sử thay đổi.
3. Kiểm Tra Code Trước Khi Tạo PR
- Kiểm tra tự động (Auto-checks): Chạy các bài kiểm tra tự động (tests, linting) để phát hiện lỗi và tối ưu mã.
- Kiểm tra thủ công: Kiểm tra các chức năng chính trên môi trường phát triển cục bộ.
4. Tạo Pull Request (PR) Trên GitHub
-
Tiêu đề PR: Viết tiêu đề ngắn gọn, rõ ràng, mô tả nội dung chính của PR.
Thêm tính năng xác thực người dùng Sửa lỗi hi ển thị sản phẩm trên trang chủ
-
Mô tả PR: Viết mô tả chi tiết về nội dung của PR:
- Ticket liên quan: Đính kèm liên kết đến các ticket, issue liên quan.
- Nội dung: Mô tả tính năng hoặc lỗi đã được xử lý.
- Hướng dẫn kiểm thử: Cung cấp các bước kiểm tra để người review và QA dễ thực hiện.
-
Ảnh chụp màn hình (nếu có): Đính kèm ảnh hoặc video mô tả thay đổi giao diện hoặc kết quả của tính năng mới.
5. Danh Sách Kiểm Tra Trước Khi Gửi PR
- Convention: Đảm bảo code tuân thủ quy tắc đặt tên biến, hàm, chú thích đúng chuẩn.
- Đầy đủ tài liệu: Đảm bảo PR đã đính kèm tài liệu, đặc tả kỹ thuật nếu cần.
- Không trùng lặp code: Kiểm tra mã có trùng lặp không và loại bỏ các đoạn code thừa.
- Kiểm tra n+1 query: Đảm bảo không có lỗi n+1 query hoặc các lỗi về hiệu năng.
- Cập nhật database (nếu có): Nếu PR yêu cầu cập nhật database, ghi rõ các thay đổi cần thiết, bao gồm các lệnh SQL hoặc rake task cần chạy sau khi deploy.