Phát triển dựa trên nhánh chính (Trunk Based Development)

Git nâng cao

Amanda Crawford-Adamo

Software and Data Engineer

Trunk Based Development là gì?

  • Mô hình nhánh và CI/CD trong quản lý mã nguồn
  • Nhà phát triển không còn đẩy lên nhánh phát hành riêng
  • Thay đổi từ nhánh ngắn, hợp nhất vào main
  • Cập nhật nhỏ và thường xuyên

Biểu đồ commit vào nhánh main và nhánh như thân phát hành

Git nâng cao

Nguyên tắc cốt lõi của Trunk Based Development

  1. Commit thường xuyên vào main
  2. Nhánh tính năng sống ngắn (< 1 ngày)
  3. Tích hợp liên tục
  4. Feature flag cho phần chưa hoàn thiện

Mô tả quy trình trunk-based. Nhánh ngắn dùng feature flag khi hợp nhất vào main.

Git nâng cao

Feature flag trong TBD

  • Quản lý tính năng chưa hoàn thiện
  • Không ảnh hưởng người dùng
  • Phát hành dần dần

Ví dụ mã Feature Flag

  if feature_flag_enabled('new_feature'):
      # New feature code
  else:
      # Old feature code
Git nâng cao

Tích hợp liên tục trong TBD

  • Commit vào main kích hoạt build và kiểm thử tự động
  • Giảm bảo trì, phát hành nhanh hơn
  • Sản phẩm luôn tin cậy, ổn định
  • Đảm bảo bảo mật và tuân thủ tiêu chuẩn ngành
  • Duy trì chất lượng mã, giảm rủi ro lỗi
Git nâng cao

Lợi ích và thách thức của TBD

Lợi ích:

  • Giảm xung đột hợp nhất
  • Chu kỳ phát hành nhanh hơn
  • Nâng cao chất lượng mã
  • Hợp tác tốt hơn

Thách thức:

  • Cần kỷ luật nhóm
  • Cần kiểm thử vững chắc
  • Độ dốc học ban đầu
  • Quản lý tính năng chưa hoàn thiện
Git nâng cao

Thực tiễn tốt nhất

  1. Commit nhỏ, thường xuyên
  2. Tự động hóa kiểm thử và triển khai
  3. Dùng feature flag cho phần chưa xong
  4. Rà soát mã định kỳ
  5. Giám sát sau triển khai
Git nâng cao

Ayo berlatih!

Git nâng cao

Preparing Video For Download...