Dosya adının bir parçası olarak sürüm numarası


15

Bazı yazılımların sürüm numaralarının dosya adlarının bir parçası olduğunu, bazılarının ise olmadığını görüyorum. Daha sonra ikinci tipe alışkınım ve bence bu daha popüler, ancak eski türü bazen javascript kütüphanelerinde görüyorum. Örneğin, jQuery dosya adı jquery-2.1.0.jsyerine gibidir jquery.js. Bu dosya türlerini her güncellediğimde, bu dosyaları yükleyen diğer programlardaki yerleri aramam ve başvuruda buldukları dosya adını değiştirmem ve bu kitaplıkların eski sürümünü el ile silmem gerekir. Bu benim için elverişsiz, bu yüzden sürüm numarasını hariç tutmak için dosyayı yeniden adlandırmak ve sürüm numarasını içermemesi için atıfta bulunulan dosya adını tutmak.

Bu sayıların bir çeşit sürüm kontrolü için olduğundan şüpheleniyorum, ancak ne zaman ve nasıl kullanıldıklarından emin değilim.

  • Dosya adına sürüm numaralarını dahil etmenin avantajları ve dezavantajları nelerdir?
  • Yazılım adlarının veya dillerinin dosya adında sürüm numarasını kullandığı ve hangi alanlarda / dillerin kullanılmadığı konusunda fiili bir mutabakat var mı? Eğer öyleyse, bunun için herhangi bir gerekçe var mı?

3
en büyük avantajı, onlar için hazır olmadan kırma değişikliklerinin gerçekleşmemesini sağlayabilirsiniz
cırcır ucube

@ratchetfreak Hazır olmadığınızda güncelleme yapmazsınız. Yapıyor musun?
sawa

2
@sawa Varsayalım jQuery.com/jquery.js en son sürümün URL'sidir ve kodunuzun ifade ettiği budur. JQuery radikal bir güncelleme yayınlarsa ne olur? Tabii ki, kendi yerel kopyanıza bağlayacaksınız ama sanırım mandal ucube bunun anlamı
11684

@ 11684 Anladım, anladım.
sawa

1
Jquery örneğinde, hem Google hem de cdnjs.com CDN barındırılan sürümlerinin sürümü dosya adı yerine dizin ağacına koyduğunu belirtmek isterim. (Jquery.com ve Microsoft'un jquery CDN'sinin dosya adındaki sürümü vardır.)
Brian S

Yanıtlar:


24
  1. İstediğiniz sürümü belirtmek mantıklıdır. Güvenebileceğiniz davranış değişmiş olabilir, bu nedenle daha yeni olan her zaman daha iyi değildir. İlk olarak, kitaplığın yeni bir sürümünün işinize yarayıp yaramadığını test edin. Ardından, açıkça güncelleyin.

  2. Web kaynakları söz konusu olduğunda, sürümün dosya adının bir parçası olması önbellekleme bağlamında önemlidir . jquery.jsSizin gibi statik kaynaklar için, yeniden getirilmeden önce çok uzun bir önbellek süresi isteyeceksiniz. Ancak, bir güncelleme sırasında , istemcilerin bir sonraki gün içinde yeni sürüme geçmesini istemiyorsanız, kodunuzun yeni sürümü hemen kullanmasını istersiniz . As foo-1.2.3.jsgibi farklı bir kaynaktır foo-1.2.4.jshiçbir önbelleğe şekilde alacaksınız.


1
+1, ancak bu cevabın biraz tek kenarlı olduğunu düşünüyorum. Gerçekten de "sürüm numarası yok" un daha iyi bir seçim olabileceği durumlar vardır. Cevabımı aşağıda görebilirsiniz.
Doc Brown

3

(@ Amon tarafından belirtilen web önbellekleme durumu hariç): Programınızın kullanımı için bir üçüncü taraf kütüphanesinin yerel bir kopyasını yaptığınızı varsayıyorum, aksi takdirde sürüm numarasına ihtiyaç duyulacaktır. Geliştirdiğiniz yazılım sistemi içinde böyle bir üçüncü taraf kütüphanesinin kullanım senaryosu aşağıdaki ikisinden biri olabilir:

  • Programınızın lib kullanan tüm bölümleri her zaman lib'in aynı sürümünü (ideal olarak "en yeni") paylaşacaktır ve zaman zaman lib'i güncelleyeceksiniz. Sonra sürüm numarasını dosya adının bir parçası olarak tutmak gerçekten sıkıcı olabilir ve aslında mümkünse dosyanın yerel kopyasından numarayı çıkarmanızı tavsiye ederim. Üçüncü taraf satıcının lib'i daha önceki sürümlerle aşağı doğru uyumlu tuttuğundan eminseniz, bunun iyi bir fikir olduğuna dikkat edin.

  • programınızın A sürümüne ihtiyaç duyan bazı bölümleri ve B sürümüne ihtiyaç duyan bazı bölümleri olmasını beklersiniz. Sonra üçüncü taraf lib için bir sürüm numarasına ihtiyacınız olacaktır. Bu durumun, yeni bir sürüm çıkardıktan sonra bir kerede lib kullanarak tüm yazılım parçalarınızı kolayca test edemediğinizde de meydana gelebileceğini unutmayın.

Ve kendiniz bir kütüphane satıcısıysanız, varsayılan olarak sürüm numarasını eklemelisiniz, ancak bu lib'in kullanıcısının bu sayıyı tutup tutmayacağına veya kesip atmadığına karar vermesine izin vermelisiniz.


Evet. Haklısın. İki vakanızdan ilkinden bahsediyordum.
sawa

1
@sawa: Örneğinizin, amon'un jqueryweb önbellekleme argümanı için geçerli olduğunu unutmayın. Cevabımın ardındaki sebep, "sürüm numarası yok" un daha iyi bir seçim olabileceği farklı durumları açıklamaktı.
Doc Brown
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.