VCS Là Gì, VCS Tập Trung và VCS Phân Tán Khác Nhau Như Thế Nào

Trước lúc tìm hiểu về Git bạn cần nắm vững về thuật ngữ Model Management System (VCS).

VCS Là Gì

VCS viết tắt của Model Management System là 1 loại phần mềm giúp chúng ta quản lý sự thay đổi đổi trong supply code của dự án theo thời kì 1 bí quyết dễ dàng và thuận tiện.

VCS lưu trữ mọi sự thay đổi đổi trong supply code của dự án trong 1 cơ sở dữ liệu đặc biệt. Chúng ta có thể dễ ràng truy vấn ra được sự thay đổi đổi của supply code trong 1 file tại 1 thời điểm bất kỳ. Và ví dụ cần chúng ta có thể dễ dàng đảo ngược supply code trong file trở về 1 thời điểm trước đấy.

Lưu ý: 2 thuật ngữ VCS (Model Management System) và SCM (Supply Code Administration) được dùng thay đổi thế cho nhau.

Tại Sao Cần Sử Dụng VCS

VCS đặc biệt hữu dụng trong những dự án lớn đòi hỏi sự tham dự của nhiều lập trình viên. Dí dụ tại cùng 1 thời điểm, chúng ta cần phát triển thành thêm nhiều characteristic (tính năng) new cho phần mềm. Và từng thành viên trong staff được phân công để phát triển thành 1 characteristic. Lúc có 2 thành viên cùng hoàn thành xong 2 characteristic biệt lập cùng lúc thì lúc đấy việc merge (gộp) code lại có thể sẽ gây ra battle (xung đột) vì 2 người này có thể sửa đổi cùng 1 đoạn code trên cùng 1 file.

Lúc này dùng VCS chúng ta có thể dễ dàng đánh giá được sự thay đổi đổi nào tới từ ai và cho characteristic nào.

Xem Thêm  Crew là gì? Ý nghĩa và tác dụng lúc khiến việc Crew đạt hiệu quả

VCS Phân Tán và VCS Tập Trung

Dự theo bí quyết thiết kế thì VCS được chia thành 2 kiểu khác nhau đấy là VCS tập trung (centralized) và VCS phân tán (distributed).

Có những VCS dạng tập trung thì supply code của dự án sẽ được lưu trữ trên 1 kho tập trụng (hay kho trung tâm) trên 1 máy chủ. Từng lập trình viên muốn tạo ra sự thay đổi đổi cho supply code lưu trữ trong kho trung tâm trung (centralized repository) thì họ cần buộc phải thực hành 1 công việc trước đấy là replace supply code trên máy tính của họ có kho tập trung trước tiếp tục new được thay đổi đổi.

Cùng tham khảo thí dụ sau đây để bạn có thể hiểu rõ sự khác biệt giữa 2 kiểu VCS tập trung và VCS phân tán.

Trong dự ánh đang có 4 anh A, B, C và D cùng làm cho và supply code dự án này được quản lý bởi 1 phần mềm VCS tập trung tên là Subversion (hay SVN).

Vào 08:00:00 ngày hôm nay lập trình viên A lên đơn vị mở máy tính ra và replace code trên máy tính của anh ta để đồng bộ có code lưu trữ trên kho tập trung. Tiếp theo anh A khởi đầu code để repair 1 lỗi mà anh ta tìm thấy ngày hôm qua. Anh A code siêu nhanh nên chỉ mất 15 phút để sửa lỗi và để sửa lỗi này A đã buộc phải thay đổi đổi nội dung của 50 file khác nhau trong supply code.

Xem Thêm  Tài Lanh Là Gì Lúc Bị Nhận Xét Tài Lanh, Hay Dạy Đời Người Khác? nam 2023 | sentayho.com.vn

Và tiếp tục anh này đấy (push) code new của anh ta lên kho tập trung. Do chưa có ai thay đổi đổi code trên kho tập trung nên thay đổi đổi của anh ta được thông qua và code trên kho tập trung được cập nhật.

Vào lúc 08:30:00 cha anh B, C và D lên đơn vị và mở máy tính để tiếp tục code 3 characteristic khác nhau và cũng khá quan yếu của dự án.

Lúc 08:50:00 lúc anh B tạo 1 phiên bản new cho supply code của mình và có VCS dạng tập trung thì điều này buộc anh buộc phải replace code trên máy của anh ta có kho tập trung trên server trước lúc có thể tạo ra model new. Tuy nhiên lúc replace code trên kho thì anh này gặp buộc phải lỗi xung đột nội dung do anh ta đã thay đổi đổi 10 file mà anh A đã thay đổi đổi lúc 08:15:00 và đấy lên kho tập trung.

Lúc 09:15:00 lúc anh C và anh D cũng muốn tạo 1 phiên bản new cho supply code và cũng gặp buộc phải lỗi tương tự động như anh B do đã sửa những file mà anh A cũng đã sửa trước đấy.

Như vậy để giải quyết xung đột thì từng B, C và D lúc này từng người cũng buộc phải xem lại thay đổi đổi supply code của mình và của anh A để hạn chế xoá nhầm code tạo thêm bug new.

Ngược lại có VCS dạng phân tán thì từng lập trình viên sẽ có riêng 1 kho (repository) của mình và có thể tự động do phát triển thành khác characteristic và tạo model new (hay đúng hơn là 1 commit) mà ko cần buộc phải đồng bộ có kho trên server. Điều này sẽ giúp lập trình viên tập trung vào việc hoàn thành characteristic hay repair bug mà ko cần lo về việc buộc phải liên tục replace code trên máy tính của họ có code trên server để giảm thiểu xung đột. Việc xử lý xung đột (ví dụ có) sẽ được thực hành 1 lần duy nhất.

Xem Thêm  Cấu trúc và phương pháp dùng would you want trong tiếng anh