Номер версії як частина імені файлу


15

Я бачу, що деякі програми включають номер версії як частину назви файлу, а інші -. Я більше звик до останнього типу, і вважаю, що це більш популярно, але колишній тип я бачу іноді в бібліотеках javascript. Наприклад, ім'я файлу jQuery подібне jquery-2.1.0.jsзамість jquery.js. Щоразу, коли я оновлюю ці типи файлів, мені доводиться шукати місця в інших програмах, які завантажують ці файли, і змінювати ім’я файлу, на яке вони посилаються, і вручну видаляти старішу версію цих бібліотек. Мені це незручно, тому я радше перейменую файл, щоб виключити номер версії, і зберегти вказане ім'я файлу, щоб воно не включало номер версії.

Я підозрюю, що ці цифри призначені для якогось контролю версій, але мені не ясно, коли і як вони використовуються.

  • Які плюси та мінуси включати номери версій у назві файлу?
  • Чи існує фактична консенсус щодо того, в яких областях програмного забезпечення чи мов використовується номер версії у назві файлу, а в яких областях / мовах немає? Якщо так, чи є обґрунтування для цього?

3
Найбільша перевага полягає в тому, що ви можете гарантувати, що порушень змін не відбудеться до того, як ви будете готові до них
храповик виродка

@ratchetfreak Ви не оновлюєтесь, коли не готові. Чи ти?
sawa

2
@sawa Припустимо, jQuery.com/jquery.js - це URL останньої версії, і саме на це посилається ваш код. Що буде, якщо jQuery опублікує радикальне оновлення? Звичайно, ви посилаєтесь на свою власну локальну копію, але я думаю, що це означає
фрик-трекет

@ 11684 Я бачу, я зрозумів.
sawa

1
На прикладі jquery я зазначив, що і версії CDN Google, і розміщення CDDjs.com розміщують версію в дереві каталогів, а не ім'я файлу. (CDN jquery від jquery.com та Microsoft мають версію у назві файлу.)
Brian S

Відповіді:


24
  1. Є сенс вказати потрібну вам версію. Поведінка, на яку ви можете покластися, могла змінитися, тому новіше не завжди краще. Спочатку перевірте, чи працює нова версія бібліотеки для вас. Потім явно оновіть.

  2. У випадку веб-ресурсів важлива наявність версії бути частиною імені файлу в контексті кешування . Для статичних ресурсів, таких як jquery.jsви, буде потрібно дуже довгий час кешу, перш ніж він буде отриманий. Однак під час оновлення ви хочете, щоб ваш код використовував нову версію негайно , а не клієнти переходили на нову версію протягом наступного дня або близько того. Як foo-1.2.3.jsі інший ресурс foo-1.2.4.js, жоден кеш не перешкоджатиме.


1
+1, хоча я вважаю, що ця відповідь трохи односхилий. Дійсно бувають ситуації, коли "відсутність версії" може бути кращим вибором. Дивіться мою відповідь нижче.
Док Браун

3

(Виключаючи ситуацію веб-кешування, згадану @amon): Я припускаю, що ви робите локальну копію сторонньої бібліотеки для використання вашої програми, інакше потреба в номері версії була б очевидною. Сценарій використання такої сторонньої бібліотеки в рамках програмної системи, яку ви розробляєте, може бути одним із цих двох:

  • усі частини вашої програми, які використовують lib, завжди мають однакову версію lib (в ідеалі "новітню"), і ви збираєтесь час від часу оновлювати її. Тоді збереження номера версії як частини імені файлу може бути справді стомлюючим, і я насправді рекомендую зняти номер із вашої локальної копії файлу, якщо це можливо. Зауважте, що це лише гарна ідея, якщо у вас є впевненість, що сторонній постачальник тримає лібуси в основному вниз, сумісні з попередніми версіями.

  • ви очікуєте, що у вас є деякі частини вашої програми, які потребують версії A, та інші, які потребують версії B. Тоді, очевидно, вам знадобиться номер версії для сторонньої версії. Зауважте, що така ситуація може виникнути і тоді, коли після впровадження нової версії ви не зможете легко протестувати всі компоненти програмного забезпечення за допомогою lib відразу.

А якщо ви власник бібліотеки, вам слід вказати номер версії за замовчуванням, але дозвольте користувачеві цієї ліби вирішити для себе, чи збереже це число чи позбавить його.


Так. Ти правий. Я згадував перший з ваших двох випадків.
sawa

1
@sawa: зауважте, що це був ваш приклад jquery, для якого справедливий аргумент кешування веб-сторінок Amon . Підставою для моєї відповіді було пояснення різних ситуацій, коли "відсутність версії" може бути кращим вибором.
Док Браун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.