Tối ưu quy trình review code với Stacked Pull Requests trong kỷ nguyên AI
Đừng để những pull request khổng lồ do AI tạo ra làm chậm tiến độ dự án. Tìm hiểu cách sử dụng Stacked Pull Requests để chia nhỏ công việc, giúp việc review code trở nên khoa học và hiệu quả...
Trong quá trình phát triển phần mềm, chúng ta thường đối mặt với một lựa chọn khó khăn: gộp tất cả thay đổi vào một pull request (PR) khổng lồ khiến việc review trở thành cơn ác mộng, hoặc chia nhỏ chúng ra nhưng lại tốn công sức quản lý, đồng bộ và giải quyết xung đột thủ công. Sự xuất hiện của các coding agent càng làm vấn đề này trở nên cấp thiết hơn, khi chúng có xu hướng tạo ra các PR lớn với hàng nghìn dòng code.
Table Of Content
Stacked Pull Requests là gì?
Stacked Pull Requests là phương pháp chia nhỏ một tính năng phức tạp thành các lớp (layer) logic, tạo thành một chuỗi các PR phụ thuộc lẫn nhau. Thay vì một PR duy nhất, bạn sẽ có một “stack” gồm nhiều PR nhỏ, tập trung vào từng mối quan tâm cụ thể (single concern), giúp người review dễ dàng nắm bắt ngữ cảnh mà không bị quá tải.
Xây dựng cấu trúc Stack
Để triển khai, bạn cần xác định nền tảng của stack (stack base) và phân tách công việc theo thứ tự phụ thuộc:
- Lớp nền tảng: Dữ liệu, model, module truy xuất dữ liệu.
- Lớp API: Các endpoint, validation.
- Lớp logic: Kết nối dữ liệu với tính năng chat/xử lý.
- Lớp giao diện (UI): Hiển thị kết quả, trạng thái người dùng.
Cách tiếp cận này cho phép bạn chỉ định đúng người review cho từng phần (ví dụ: chuyên gia dữ liệu review tầng data, chuyên gia UI review tầng giao diện).
Công cụ hỗ trợ từ GitHub
GitHub đã cung cấp công cụ hỗ trợ mạnh mẽ thông qua CLI gh-stack. Bạn có thể cài đặt bằng lệnh:
gh extension install github/gh-stack
Ngoài ra, bạn có thể cài đặt các kỹ năng (skills) cho coding agent để chúng tự động tạo và quản lý các stack này thay vì tạo ra các PR đơn lẻ:
gh skill install github/gh-stack
Quy trình review và đồng bộ
Khi sử dụng Stacked Pull Requests, quy trình review sẽ thay đổi:
- Đọc từ trên xuống: Để hiểu mục tiêu cuối cùng của tính năng.
- Review từ dưới lên: Để kiểm tra tính đúng đắn của từng lớp nền tảng trước khi đến các lớp phụ thuộc phía trên.
Khi có thay đổi hoặc yêu cầu chỉnh sửa từ reviewer ở các lớp dưới, bạn có thể sử dụng lệnh gh stack rebase để cập nhật thay đổi lên toàn bộ các lớp phía trên một cách tự động. Lệnh gh stack sync sẽ giúp đồng bộ trạng thái của toàn bộ stack trên GitHub, đảm bảo các CI check được chạy lại chính xác cho từng layer.
Việc chuyển đổi sang mô hình stacked PR không chỉ giúp giảm bớt áp lực cho người review mà còn giúp dự án của bạn trở nên minh bạch, dễ bảo trì và giảm thiểu rủi ro xung đột code trong môi trường phát triển có sự tham gia của AI.
Nguồn tham khảo: GitHub Blog


No Comment! Be the first one.