Nomor versi sebagai bagian dari nama file


15

Saya melihat bahwa beberapa perangkat lunak memasukkan nomor versi sebagai bagian dari nama file mereka, sementara yang lain tidak. Saya lebih terbiasa dengan tipe yang terakhir, dan saya pikir itu lebih populer, tapi saya melihat tipe yang lama kadang-kadang di perpustakaan javascript. Misalnya, nama file jQuery seperti jquery-2.1.0.jsbukan jquery.js. Setiap kali saya memperbarui jenis file ini, saya harus mencari tempat-tempat di program lain yang memuat file-file ini, dan mengubah nama file yang mereka rujuk, dan secara manual menghapus versi yang lebih lama dari perpustakaan ini. Itu tidak nyaman bagi saya, jadi saya lebih suka mengganti nama file untuk mengecualikan nomor versi, dan menjaga nama file yang dimaksud tidak termasuk nomor versi.

Saya menduga bahwa angka-angka ini untuk beberapa jenis kontrol versi, tetapi tidak jelas kapan dan bagaimana mereka digunakan.

  • Apa pro dan kontra untuk memasukkan nomor versi dalam nama file?
  • Apakah ada konsensus de facto pada bidang perangkat lunak atau bahasa mana yang menggunakan nomor versi dalam nama file, dan area / bahasa mana yang tidak? Jika demikian, apakah ada alasan untuk itu?

3
Keuntungan terbesar adalah Anda dapat memastikan perubahan tidak terjadi sebelum Anda siap untuk itu
ratchet freak

@ scratchetfreak Anda tidak memperbarui ketika Anda tidak siap. Apakah kamu?
sawa

2
@sawa Misalkan jQuery.com/jquery.js adalah URL dari versi terbaru dan itulah yang merujuk pada kode Anda. Apa yang akan terjadi jika jQuery akan mempublikasikan pembaruan radikal? Tentu saja, Anda akan menautkan ke salinan lokal Anda sendiri tetapi saya pikir inilah yang dimaksud dengan ratchet freak
11684

@ 11684 Begitu, saya mengerti.
sawa

1
Saya akan menunjukkan, dalam contoh jquery, bahwa Google dan cdnjs.com yang di-host versi menempatkan versi di pohon direktori, daripada nama file. (CDN jquery dari jquery.com dan Microsoft sama-sama memiliki versi dalam nama file.)
Brian S

Jawaban:


24
  1. Masuk akal untuk menentukan versi yang Anda butuhkan. Perilaku yang Anda andalkan bisa saja berubah, jadi yang lebih baru tidak selalu lebih baik. Pertama, uji apakah versi baru perpustakaan berfungsi untuk Anda. Kemudian, perbarui secara eksplisit.

  2. Dalam hal sumber daya web, menjadikan versi sebagai bagian dari nama file adalah penting dalam konteks caching . Untuk sumber daya statis seperti jquery.jsAnda akan memerlukan waktu cache yang sangat lama sebelum diambil kembali. Namun, selama update Anda ingin kode Anda untuk menggunakan versi baru segera , daripada harus klien beralih ke versi baru selama hari berikutnya atau lebih. Seperti foo-1.2.3.jssumber daya yang berbeda foo-1.2.4.js, tidak ada cache akan menghalangi.


1
+1, meskipun saya pikir jawaban ini sedikit bermata satu. Memang ada situasi di mana "tidak ada nomor versi" mungkin merupakan pilihan yang lebih baik. Lihat jawaban saya di bawah ini.
Doc Brown

3

(Tidak termasuk situasi caching web yang disebutkan oleh @amon): Saya berasumsi Anda membuat salinan lokal perpustakaan pihak ketiga untuk penggunaan program Anda, jika tidak, kebutuhan untuk nomor versi akan jelas. Skenario penggunaan perpustakaan pihak ketiga semacam itu dalam sistem perangkat lunak yang Anda kembangkan mungkin salah satu dari dua ini:

  • semua bagian dari program Anda yang menggunakan lib akan selalu berbagi versi lib yang sama (idealnya "yang terbaru"), dan Anda akan memperbarui lib dari waktu ke waktu. Maka menjaga nomor versi sebagai bagian dari nama file bisa sangat membosankan, dan saya benar-benar akan merekomendasikan untuk menghapus nomor dari salinan file lokal Anda jika memungkinkan. Perhatikan bahwa ini hanya ide yang bagus jika Anda memiliki keyakinan bahwa vendor pihak ketiga membuat sebagian besar lib kompatibel dengan versi sebelumnya.

  • Anda berharap memiliki beberapa bagian dari program Anda yang memerlukan versi A, dan beberapa lainnya yang membutuhkan versi B. Maka Anda jelas akan membutuhkan nomor versi untuk lib pihak ketiga. Perhatikan bahwa situasi ini juga dapat terjadi ketika Anda tidak dapat dengan mudah menguji semua bagian perangkat lunak Anda menggunakan lib sekaligus setelah memperkenalkan versi baru.

Dan jika Anda sendiri vendor perpustakaan, Anda harus memasukkan nomor versi secara default, tetapi biarkan pengguna Lib itu memutuskan sendiri apakah ia menyimpan nomor itu atau menghapusnya.


Iya. Kamu benar. Saya menyebutkan yang pertama dari dua kasus Anda.
sawa

1
@sawa: perhatikan bahwa contoh Anda adalah jquery, untuk mana argumen caching web amon berlaku. Alasan di balik jawaban saya adalah untuk menjelaskan berbagai situasi di mana "tidak ada nomor versi" mungkin merupakan pilihan yang lebih baik.
Doc Brown
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.