Số phiên bản là một phần của tên tệp


15

Tôi thấy rằng một số phần mềm có số phiên bản được bao gồm như một phần của tên tệp của họ, trong khi những phần mềm khác thì không. Tôi quen với loại thứ hai hơn và tôi nghĩ nó phổ biến hơn, nhưng đôi khi tôi thấy loại cũ trong các thư viện javascript. Ví dụ: tên tệp của jQuery giống nhưjquery-2.1.0.js thay vì jquery.js. Bất cứ khi nào tôi cập nhật các loại tệp này, tôi phải tìm các vị trí trong các chương trình khác tải các tệp này và thay đổi tên tệp mà chúng tham chiếu và xóa thủ công phiên bản cũ của các thư viện này. Điều đó gây bất tiện cho tôi, vì vậy tôi thay đổi tên tệp để loại trừ số phiên bản và giữ tên tệp được đề cập để không bao gồm số phiên bản.

Tôi nghi ngờ rằng những con số này là dành cho một số loại kiểm soát phiên bản, nhưng không rõ chúng được sử dụng khi nào và như thế nào.

  • Những ưu và nhược điểm để bao gồm số phiên bản trong tên tệp là gì?
  • Có sự đồng thuận trên thực tế về các lĩnh vực phần mềm hoặc ngôn ngữ sử dụng số phiên bản trong tên tệp và khu vực / ngôn ngữ nào không? Nếu vậy, có bất kỳ lý do cho điều đó?

3
lợi thế lớn nhất là bạn có thể đảm bảo phá vỡ các thay đổi không xảy ra trước khi bạn sẵn sàng cho chúng
ratchet freak

@ratchetfreak Bạn không cập nhật khi bạn chưa sẵn sàng. Phải không
sawa

2
@sawa Giả sử jQuery.com/jquery.js là URL của phiên bản mới nhất và đó là những gì mã của bạn đề cập đến. Điều gì sẽ xảy ra nếu jQuery sẽ xuất bản một bản cập nhật triệt để? Tất nhiên, bạn sẽ liên kết với bản sao địa phương của riêng bạn nhưng tôi nghĩ đây là ý nghĩa của ratchet freak
11684

@ 11684 Tôi hiểu rồi, tôi hiểu rồi.
sawa

1
Tôi sẽ chỉ ra, trong ví dụ của jquery, rằng cả hai phiên bản lưu trữ CDN của Google và cdnjs.com đều đặt phiên bản trong cây thư mục, thay vì tên tệp. (CDN jquery từ jquery.com và Microsoft đều có phiên bản trong tên tệp.)
Brian S

Câu trả lời:


24
  1. Nó có ý nghĩa để xác định phiên bản bạn yêu cầu. Hành vi bạn có thể dựa vào có thể đã thay đổi, vì vậy mới hơn không phải lúc nào cũng tốt hơn. Trước tiên, hãy kiểm tra xem phiên bản mới của thư viện có phù hợp với bạn không. Sau đó, cập nhật rõ ràng.

  2. Trong trường hợp tài nguyên web, việc có phiên bản là một phần của tên tệp rất quan trọng trong ngữ cảnh của bộ đệm . Đối với các tài nguyên tĩnh như jquery.jsbạn sẽ muốn có thời gian bộ nhớ cache rất dài trước khi được tải lại. Tuy nhiên, trong bản cập nhật, bạn muốn mã của mình sử dụng phiên bản mới ngay lập tức , thay vì khách hàng chuyển sang phiên bản mới trong ngày hôm sau. Như foo-1.2.3.jslà một tài nguyên khác nhau foo-1.2.4.js, không có bộ nhớ cache sẽ cản trở.


1
+1, mặc dù tôi nghĩ rằng câu trả lời này là một chút một lưỡi. Thực sự có những tình huống "không có số phiên bản" có thể là lựa chọn tốt hơn. Xem câu trả lời của tôi dưới đây.
Doc Brown

3

(Không bao gồm tình huống bộ đệm web được đề cập bởi @amon): Tôi giả sử bạn tạo một bản sao cục bộ của thư viện bên thứ ba để sử dụng chương trình của bạn, nếu không, nhu cầu về số phiên bản sẽ rõ ràng. Kịch bản sử dụng của thư viện bên thứ ba như vậy trong hệ thống phần mềm bạn đang phát triển có thể là một trong hai:

  • tất cả các phần trong chương trình của bạn đang sử dụng lib sẽ luôn chia sẻ cùng một phiên bản lib (lý tưởng là "mới nhất") và thỉnh thoảng bạn sẽ cập nhật lib. Sau đó, việc giữ số phiên bản là một phần của tên tệp có thể thực sự tẻ nhạt và tôi thực sự khuyên bạn nên tách số từ bản sao tệp cục bộ của bạn nếu có thể. Lưu ý rằng đây chỉ là một ý tưởng tốt nếu bạn tin tưởng rằng nhà cung cấp bên thứ ba giữ lib tương thích với hầu hết các phiên bản trước đó.

  • bạn mong muốn có một số phần trong chương trình của bạn cần phiên bản A và một số phần khác cần phiên bản B. Sau đó, rõ ràng bạn sẽ cần một số phiên bản cho lib của bên thứ ba. Lưu ý rằng tình huống này cũng có thể xảy ra khi bạn không thể dễ dàng kiểm tra tất cả các phần của phần mềm bằng lib sau khi giới thiệu phiên bản mới.

Và nếu bạn là một nhà cung cấp thư viện theo mặc định, bạn nên bao gồm số phiên bản theo mặc định, nhưng hãy để người dùng của lib đó tự quyết định nếu anh ta giữ số đó hoặc loại bỏ số đó.


Đúng. Bạn đúng rồi. Tôi đã đề cập đến trường hợp đầu tiên trong hai trường hợp của bạn.
sawa

1
@sawa: lưu ý rằng ví dụ của bạn là jquery, trong đó đối số bộ nhớ đệm web của amon giữ. Lý do đằng sau câu trả lời của tôi là để giải thích các tình huống khác nhau trong đó "không có số phiên bản" có thể là lựa chọn tốt hơn.
Doc Brown
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.