Thuật ngữ “forking” (phân nhánh) đã được sử dụng trong giới phát triển phần mềm trong nhiều thập kỷ. Trước đây, nó chủ yếu chỉ việc sao chép một phần mềm và sau đó phát triển nó song song với bản sao chính.
Nhưng ý nghĩa của thuật ngữ này phát triển theo thời gian và giờ đâynó chỉ một hiện tượng cụ thể trong phát triển phần mềm. Vậy software forking (tạm dịch là phân nhánh phần mềm) có nghĩa là gì? Hãy tìm hiểu cùng FUNiX.
Software forking có nghĩa là gì?
Software forking xảy ra khi có sự rạn nứt trong nội bộ nhóm phát triển, điều này có thể là do sự khác biệt về quan điểm liên quan đến hướng đi của dự án hoặc xung đột về tính cách.
Sau đó, một hoặc nhiều thành viên của nhóm sẽ lấy mã nguồn của chương trình và bắt đầu phát triển độc lập dưới một tên gọi, theo một cách tiếp cận và hướng khác. Vì vậy, mặc dù một nhánh rẽ dựa trên mã nguồn của phần mềm mẹ nhưng nó là một dự án mới và độc lập.
Bởi vì rất khó để giành quyền với mã nguồn phần mềm có bản quyền, nên hiện tượng này gần như chỉ xảy ra trong thế giới phát triển phần mềm tự do. Bản chất “nguồn mở” của loại phần mềm này đồng nghĩa với việc bất kỳ người dùng nào cũng có quyền dùng, nghiên cứu, thay đổi và phân phối cả phần mềm và mã nguồn của nó.
Quyền phân nhánh
Khi một hoặc nhiều thành viên của nhóm phát triển lấy mã nguồn của dự án và quyết định phát triển độc lập, trong hầu hết các trường hợp họ làm điều đó do xung đột, thậm chí là thù địch. Điều này đã khiến cộng đồng phát triển phần mềm coi forking là xấu.
Tuy nhiên, nhiều nhánh đã thành công và thậm chí còn vượt qua phần mềm gốc về độ phổ biến, ví dụ như Firefox của Mozilla và Ubuntu của Debian. Ngoài ra, bản chất “nguồn mở” của phần mềm tự do có nghĩa là bất kỳ ai cũng có quyền sử dụng hoặc sửa đổi mã nguồn theo cách họ muốn.
Bây giờ bạn đã biết phân nhánh phần mềm là gì
Thuật ngữ “forking” (phân nhánh) đã có từ nhiều thế kỷ và thường dùng để chỉ sự chia rẽ. Tuy nhiên, kể từ cuối thế kỷ 20, nó cũng đã trở thành một thuật ngữ thông dụng trong các cộng đồng phát triển phần mềm.
Nếu bạn nghĩ rằng bạn có thể thực hiện một dự án theo hướng tốt hơn và xung đột với đồng nghiệp là không thể giải quyết thì việc phân nhánh là điều bạn có thể cân nhắc
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/what-is-software-forking/









Bình luận (0
)