28/07/2025
Có 2 mô hình quản lý code phổ biến hiện nay mà các team phát triển phần mềm thường dùng: GitFlow và Trunk-based Development.
1. GitFlow là quy trình nhiều nhóm dev nhỏ đến vừa áp dụng để tổ chức công việc trên Git. Mô hình này khá bài bản:
- Code mới sẽ được tách ra các nhánh nhỏ (feature),
- Khi chuẩn bị phát hành thì gom vào nhánh release,
- Nếu có sự cố gấp thì tách nhánh hotfix từ production,
- Và tất cả giao nhau qua nhánh develop và master/main rất rõ ràng.
Ưu điểm của GitFlow là giúp team kiểm soát tốt các phiên bản, mỗi người ôm một nhánh riêng nên ít va chạm, fix xong mới merge lại.
2. Nhưng các công ty công nghệ lớn như Google lại không chọn GitFlow.
Họ thường dùng mô hình gọi là Trunk-based Development:
Gần như chỉ có một nhánh chính (main/trunk).
- Tất cả mọi người đều commit/merge vào nhánh này càng nhanh càng tốt, nhánh feature chỉ tồn tại ngắn ngày (đôi khi chỉ vài giờ, hiếm khi kéo dài).
- Mọi thứ khác biệt (ví dụ bật tắt tính năng) sẽ điều khiển bằng "feature flag".
- Việc test, build, triển khai đều tự động cực gắt, CI/CD liên tục mỗi khi có code mới lên trunk.
Lý do?
- Với những sản phẩm lớn (hàng ngàn dev cùng code), nếu ai cũng giữ nhánh riêng lâu ngày thì chuyện "merge conflict", gây lỗi production là không tránh khỏi.
- Trunk-based cho phép mọi người luôn đồng bộ code, phát hiện lỗi nhanh, giảm tối đa thời gian release hoặc rollback.
- Khi đã tổ chức đủ bài bản thì việc stick vào một nhánh duy nhất lại cực kỳ hiệu quả.
Bạn và team chọn mô hình nào? 🤟