Động lực phổ biến nhất khi tạo thư viện là để chia sẻ chức năng với cộng đồng rộng hơn — có thể là một nhóm, một công ty, một ngành hoặc một nền tảng công nghệ cụ thể.
Trong mọi trường hợp, khả năng tương thích ngược luôn là yếu tố quan trọng. Cộng đồng càng rộng thì điều này càng quan trọng, vì bạn sẽ ít có khả năng biết được ai là người dùng và họ đang làm việc trong những giới hạn nào.
Khả năng tương thích ngược không chỉ có một nghĩa duy nhất — nó có thể được hiểu ở các cấp độ nhị phân (binary), mã nguồn (source) và hành vi (behavioral).
💡 Lưu ý: - Có thể phá vỡ khả năng tương thích nhị phân mà vẫn giữ được tương thích mã nguồn — và ngược lại.
- Đảm bảo tương thích mã nguồn là mong muốn nhưng rất khó. Tác giả thư viện cần cân nhắc mọi cách mà hàm hoặc kiểu dữ liệu có thể được gọi hoặc khởi tạo. Thường đây là mục tiêu, không phải cam kết tuyệt đối.
Nghĩa là phiên bản mới của thư viện có thể thay thế phiên bản cũ mà không cần biên dịch lại phần mềm sử dụng nó.
Mọi phần mềm được biên dịch với phiên bản cũ vẫn chạy bình thường.
💡 Tham khảo thêm:
Phiên bản mới có thể thay thế phiên bản cũ mà không cần thay đổi mã nguồn của phần mềm sử dụng.
Tuy nhiên, phần mềm này phải được biên dịch lại để đảm bảo hoạt động chính xác.
Nghĩa là phiên bản mới không thay đổi chức năng đã có (ngoại trừ việc sửa lỗi).
Tức là các tính năng cũ vẫn hoạt động với cùng ngữ nghĩa.