Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Git Trong Doanh Nghiệp: Chiến Lược và Best Practices

Giới Thiệu

Trong môi trường doanh nghiệp lớn, việc quản lý source code đòi hỏi chiến lược và quy trình chặt chẽ. Bài viết này sẽ đi sâu vào các phương pháp và best practices khi sử dụng Git trong doanh nghiệp quy mô lớn.

1. Chiến Lược Repository: Monorepo vs. Multi-repo

Việc lựa chọn chiến lược repository phù hợp là quyết định quan trọng ảnh hưởng đến toàn bộ quy trình phát triển.

Monorepo (Single Repository)

Ưu điểm:

  • Tất cả code trong một repository duy nhất
  • Dễ dàng chia sẻ và tái sử dụng code
  • Quản lý dependency tập trung
  • Atomic commits across projects
  • Dễ dàng refactor cross-project

Thách thức:

  • Hiệu suất giảm với dự án cực lớn
  • Phức tạp trong phân quyền
  • CI/CD pipeline phức tạp hơn
  • Yêu cầu công cụ quản lý phiên bản tốt

Multi-repo (Multiple Repositories)

Ưu điểm:

  • Mỗi dự án một repository độc lập
  • Phân quyền và quản lý team linh hoạt
  • Độc lập về phiên bản và release
  • CI/CD pipeline đơn giản hơn

Thách thức:

  • Khó khăn trong quản lý dependency
  • Duplicate code có thể xảy ra
  • Phức tạp trong việc chia sẻ code
  • Khó tracking cross-project changes

So Sánh Hai Chiến Lược

Tiêu Chí Monorepo Multi-repo
Quản lý Code Tập trung Phân tán
Chia sẻ Code Dễ dàng Phức tạp
Phân Quyền Phức tạp Linh hoạt
CI/CD Phức tạp Đơn giản
Scaling Khó khăn Dễ dàng
Dependencies Quản lý tập trung Quản lý phân tán

2. Code Review Hiệu Quả Trong Doanh Nghiệp

Code review là quy trình quan trọng đảm bảo chất lượng code trong doanh nghiệp.

Quy Trình Code Review Chuẩn

  1. Chuẩn Bị Pull/Merge Request:

    • Mô tả chi tiết thay đổi
    • Link đến task/issue liên quan
    • Cung cấp test cases và kết quả test
    • Screenshot UI changes (nếu có)
  2. Automated Checks:

    • Tự động hóa kiểm tra với linter
    • Chạy automated tests
    • Code coverage check
    • Security scanning
    • Performance testing
  3. Review Guidelines:

    • Hạn chế kích thước PR/MR (tối đa 400 dòng)
    • Tập trung vào logic và thiết kế
    • Kiểm tra security concerns
    • Đảm bảo code có thể maintain
  4. Code Ownership:

    • Sử dụng CODEOWNERS file
    • Phân công reviewer theo expertise
    • Rotation system cho reviews
    • Cross-team review khi cần

Best Practices Trong Code Review

  1. Checklist Review:

    - [ ] Code logic hợp lý
    - [ ] Có đủ unit tests
    - [ ] Tuân thủ coding standards
    - [ ] Documentation đầy đủ
    - [ ] Không có security vulnerabilities
    
  2. Feedback Guidelines:

    • Tập trung vào code, không phải người
    • Giải thích lý do cho mỗi comment
    • Đề xuất giải pháp cụ thể
    • Phân loại feedback (required/optional)

3. Git LFS (Large File Storage)

Git LFS là giải pháp cho việc quản lý file dung lượng lớn trong Git repository.

Cài Đặt và Cấu Hình

# Cài đặt Git LFS
git lfs install

# Track các file lớn
git lfs track "*.psd"    # File Photoshop
git lfs track "*.zip"    # File nén
git lfs track "*.mp4"    # File video

# Thêm file cấu hình
git add .gitattributes

Best Practices Với Git LFS

  1. File Types Nên Sử Dụng LFS:

    • Binary files lớn
    • Media files (images, videos)
    • Dataset files
    • Design files (PSD, AI)
  2. Cấu Hình LFS Server:

    # Cấu hình LFS endpoint
    git config -f .lfsconfig lfs.url https://lfs.example.com/project
    
  3. Monitoring và Maintenance:

    • Theo dõi dung lượng sử dụng
    • Clean up unused LFS objects
    • Backup LFS storage

Ví Dụ .gitattributes File

# Image files
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text

# Video files
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text

# Archive files
*.zip filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text

Lời Kết

Việc áp dụng Git trong doanh nghiệp lớn đòi hỏi chiến lược rõ ràng và quy trình chặt chẽ. Từ việc lựa chọn mô hình repository phù hợp, thiết lập quy trình code review hiệu quả đến quản lý file dung lượng lớn, mỗi quyết định đều ảnh hưởng đến hiệu quả phát triển của team.

Tài Liệu Tham Khảo

  1. Git at Scale: https://git-scm.com/book/en/v2/Git-in-Other-Environments-Git-in-the-Enterprise
  2. Git LFS Documentation: https://git-lfs.github.com/
  3. Code Review Best Practices: https://google.github.io/eng-practices/review/
  4. Monorepo vs Multi-repo: https://github.blog/2021-04-29-scaling-monorepo-maintenance/