ファイル名の一部としてのバージョン番号


15

一部のソフトウェアには、ファイル名の一部としてバージョン番号が含まれていますが、他のソフトウェアには含まれていません。私は後者のタイプにもっと慣れており、それはより一般的だと思いますが、前者のタイプはjavascriptライブラリで時々見ます。たとえば、jQueryのファイル名はのjquery-2.1.0.js代わりに似ていますjquery.js。これらの種類のファイルを更新するたびに、これらのファイルを読み込む他のプログラムの場所を探し、それらが参照するファイル名を変更し、これらのライブラリの古いバージョンを手動で削除する必要があります。それは私にとって不便なので、ファイルの名前を変更してバージョン番号を除外し、ファイル名にバージョン番号を含めないようにします。

これらの数字は何らかのバージョン管理のためのものではないかと疑っていますが、いつどのように使用されるかは明確ではありません。

  • ファイル名にバージョン番号を含めることの長所と短所は何ですか?
  • ソフトウェアまたは言語のどの領域がファイル名にバージョン番号を使用し、どの領域/言語が使用しないかについて事実上のコンセンサスはありますか?もしそうなら、その理由はありますか?

3
最大の利点は、あなたが彼らのために準備ができている前に重大な変更が発生しないことを確認することができますということです
ラチェットフリーク

@ratchetfreak準備ができていないときは更新しないでください。あなたは?
沢14年

2
@sawa jQuery.com/jquery.jsが最新バージョンのURLであり、それがあなたのコードが参照していると仮定します。jQueryが根本的な更新を公開するとどうなりますか?もちろん、あなたがあなた自身のローカルコピーにリンクしたいが、私は、これはフリーク手段ラチェット何だと思う
11684を

@ 11684なるほど、わかった。
沢14年

1
jqueryの例では、Googleとcdnjs.comの両方のCDNホストバージョンが、ファイル名ではなくディレクトリツリーにバージョンを配置することを指摘します。(jquery.comのjquery CDNとMicrosoftの両方にファイル名にバージョンがあります。)
ブライアンS

回答:


24
  1. 必要なバージョンを指定することは理にかなっています。依存する可能性のある動作は変更されている可能性があるため、新しいほうが常に良いとは限りません。まず、ライブラリの新しいバージョンが機能するかどうかをテストします。次に、明示的に更新します。

  2. Webリソースの場合、キャッシングのコンテキストでは、バージョンをファイル名の一部にすることが重要です。静的リソースのjquery.js場合、再取得する前に非常に長いキャッシュ時間が必要になります。ただし、更新中は、クライアントに翌日などに新しいバージョンに切り替えさせるのではなく、コードですぐに新しいバージョンを使用する必要があります。foo-1.2.3.jsなど、さまざまな資源であるfoo-1.2.4.js、何のキャッシュが邪魔になりません。


1
+1、私はこの答えは少し片端だと思いますが。確かに、「バージョン番号なし」の方が適切な場合があります。以下の私の答えをご覧ください。
ドックブラウン14年

3

(@amonが言及したWebキャッシュの状況を除く):プログラムの使用のためにサードパーティライブラリのローカルコピーを作成すると仮定します。そうしないと、バージョン番号の必要性が明らかになります。開発中のソフトウェアシステム内のサードパーティライブラリの使用シナリオは、次の2つのいずれかです。

  • libを使用しているプログラムのすべての部分は、常に同じバージョンのlib(理想的には「最新」)を共有するものとし、随時libを更新します。その場合、ファイル名の一部としてバージョン番号を保持するのは非常に面倒な場合があり、可能であれば、ファイルのローカルコピーから番号を削除することをお勧めします。サードパーティベンダーが以前のバージョンとほとんど下位互換性のあるlibを保持しているという確信がある場合にのみ、これは良いアイデアであることに注意してください。

  • バージョンAを必要とするプログラムの一部と、バージョンBを必要とする他の部分があることが予想されます。その後、サードパーティライブラリのバージョン番号が明らかに必要になります。この状況は、新しいバージョンを導入した後、libを使用して一度にすべてのソフトウェアパーツを簡単にテストできない場合にも発生する可能性があることに注意してください。

自分がライブラリベンダーである場合は、デフォルトでバージョン番号を含める必要がありますが、そのlibのユーザーは、その番号を保持するか削除するかを自分で決めることができます。


はい。あなたが正しいです。私はあなたの2つのケースの最初について言及していました。
沢14年

1
@sawa:あなたの例はでありjquery、そのためにamonのWebキャッシング引数が成り立っていることに注意してください。私の答えの背後にある理由は、「バージョン番号なし」がより良い選択かもしれないさまざまな状況を説明することでした。
Doc Brown 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.