หมายเลขเวอร์ชันเป็นส่วนหนึ่งของชื่อไฟล์


15

ฉันเห็นว่าซอฟต์แวร์บางตัวมีหมายเลขเวอร์ชันเป็นส่วนหนึ่งของชื่อไฟล์ในขณะที่ซอฟต์แวร์อื่นไม่ทำ ฉันคุ้นเคยกับประเภทหลังมากขึ้นและฉันคิดว่ามันเป็นที่นิยมมากกว่า แต่ฉันเห็นประเภทเก่าในห้องสมุดจาวาสคริปต์ ยกตัวอย่างเช่นชื่อไฟล์ jQuery เป็นเหมือนแทนjquery-2.1.0.js jquery.jsเมื่อใดก็ตามที่ฉันอัปเดตไฟล์ประเภทนี้ฉันจะต้องค้นหาสถานที่ในโปรแกรมอื่น ๆ ที่โหลดไฟล์เหล่านี้และเปลี่ยนชื่อไฟล์ที่พวกเขาอ้างถึงและลบเวอร์ชันเก่าของไลบรารีเหล่านี้ด้วยตนเอง ฉันไม่สะดวกดังนั้นฉันค่อนข้างเปลี่ยนชื่อไฟล์เพื่อยกเว้นหมายเลขรุ่นและเก็บชื่อไฟล์ที่อ้างถึงโดยไม่รวมหมายเลขรุ่น

ฉันสงสัยว่าตัวเลขเหล่านี้ใช้สำหรับการควบคุมเวอร์ชันบางประเภท แต่ไม่ชัดเจนว่าจะใช้เมื่อใดและอย่างไร

  • ข้อดีและข้อเสียของการรวมหมายเลขรุ่นในชื่อไฟล์คืออะไร
  • มีความเห็นพ้องกันว่าในด้านใดของซอฟต์แวร์หรือภาษาที่ใช้หมายเลขรุ่นในชื่อไฟล์และพื้นที่ / ภาษาใดที่ไม่ได้ใช้? ถ้าเป็นเช่นนั้นมีเหตุผลใดที่

3
ข้อได้เปรียบที่ใหญ่ที่สุดคือคุณสามารถมั่นใจได้ว่าการเปลี่ยนแปลงที่เกิดขึ้นจะไม่เกิดขึ้นก่อนที่คุณจะพร้อมสำหรับพวกเขา
ratchet freak

@ratchetfreak คุณไม่อัปเดตเมื่อคุณยังไม่พร้อม คุณ
sawa

2
@sawa สมมติว่า jQuery.com/jquery.js เป็น URL ของเวอร์ชันล่าสุดและนั่นคือสิ่งที่รหัสของคุณอ้างถึง จะเกิดอะไรขึ้นหาก jQuery จะเผยแพร่การอัปเดตที่รุนแรง แน่นอนคุณจะเชื่อมโยงไปยังสำเนาในท้องที่ของคุณเอง แต่ฉันคิดว่านี่เป็นสิ่งที่วงล้อประหลาดหมายถึง
11684

@ 11684 ฉันเข้าใจแล้วเข้าใจแล้ว
sawa

1
ฉันจะชี้ให้เห็นในตัวอย่างของ jquery ว่าทั้ง Google และ cdnjs.com CDN โฮสต์รุ่นวางรุ่นในไดเรกทอรีต้นไม้มากกว่าชื่อไฟล์ (jquery CDN จาก jquery.com และ Microsoft ทั้งสองมีรุ่นในชื่อไฟล์)
Brian S

คำตอบ:


24
  1. เหมาะสมที่จะระบุรุ่นที่คุณต้องการ พฤติกรรมที่คุณอาจไว้ใจอาจเปลี่ยนแปลงได้ดังนั้นสิ่งใหม่ ๆ จะไม่ดีกว่าเสมอไป ก่อนอื่นให้ทดสอบว่าไลบรารีเวอร์ชันใหม่เหมาะกับคุณหรือไม่ จากนั้นอัปเดตอย่างชัดเจน

  2. ในกรณีของแหล่งข้อมูลบนเว็บที่มีรุ่นที่เป็นส่วนหนึ่งของชื่อไฟล์ที่มีความสำคัญในบริบทของแคช สำหรับทรัพยากรคงที่เช่นjquery.jsคุณจะต้องการเวลาแคชนานมากก่อนที่จะดึงข้อมูลซ้ำ อย่างไรก็ตามในระหว่างการอัปเดตคุณต้องการให้รหัสของคุณใช้เวอร์ชันใหม่ทันทีแทนที่จะให้ลูกค้าสลับไปใช้เวอร์ชันใหม่ในวันถัดไป ในฐานะที่foo-1.2.3.jsเป็นทรัพยากรที่แตกต่างกันfoo-1.2.4.jsไม่มีแคชจะได้รับในทาง


1
+1 แม้ว่าฉันคิดว่าคำตอบนี้เป็นแบบขอบเดียว มีสถานการณ์ที่ "ไม่มีหมายเลขรุ่น" อาจเป็นตัวเลือกที่ดีกว่า ดูคำตอบของฉันด้านล่าง
Doc Brown

3

(ไม่รวมสถานการณ์การแคชเว็บที่ @amon กล่าวถึง): ฉันถือว่าคุณทำสำเนาโลคัลของไลบรารีบุคคลที่สามสำหรับการใช้งานโปรแกรมของคุณมิฉะนั้นความต้องการหมายเลขรุ่นจะเห็นได้ชัด สถานการณ์การใช้งานของไลบรารีบุคคลที่สามภายในระบบซอฟต์แวร์ที่คุณกำลังพัฒนาอาจเป็นหนึ่งในสองสิ่งต่อไปนี้:

  • ส่วนต่าง ๆ ทั้งหมดของโปรแกรมของคุณที่ใช้ lib จะใช้ lib เวอร์ชันเดียวกันเสมอ (เป็นการดีที่สุด "ใหม่ล่าสุด") และคุณกำลังจะทำการอัพเดท lib เป็นครั้งคราว จากนั้นการรักษาหมายเลขเวอร์ชั่นไว้เป็นส่วนหนึ่งของชื่อไฟล์อาจเป็นเรื่องที่น่าเบื่อและฉันขอแนะนำให้ดึงหมายเลขจากสำเนาของไฟล์ในเครื่องของคุณถ้าเป็นไปได้ โปรดสังเกตว่านี่เป็นเพียงความคิดที่ดีถ้าคุณมั่นใจว่าผู้ขายบุคคลที่สามเก็บ lib ส่วนใหญ่ลงได้กับรุ่นก่อนหน้า

  • คุณคาดว่าจะมีบางส่วนของโปรแกรมของคุณซึ่งต้องการเวอร์ชั่น A และอื่น ๆ ที่ต้องการเวอร์ชัน B จากนั้นคุณจะต้องมีหมายเลขเวอร์ชันสำหรับ lib บุคคลที่สามอย่างชัดเจน โปรดทราบว่าสถานการณ์นี้อาจเกิดขึ้นเมื่อคุณไม่สามารถทดสอบชิ้นส่วนซอฟต์แวร์ทั้งหมดของคุณได้อย่างง่ายดายโดยใช้ lib พร้อมกันหลังจากแนะนำรุ่นใหม่

และหากคุณเป็นผู้จำหน่ายห้องสมุดด้วยตัวเองคุณควรรวมหมายเลขรุ่นไว้ตามค่าเริ่มต้น แต่ให้ผู้ใช้ของ lib นั้นตัดสินใจด้วยตัวเองว่าเขาจะเก็บหมายเลขนั้นไว้หรือไม่


ใช่. คุณพูดถูก ฉันกำลังพูดถึงสองกรณีแรกของคุณ
sawa

1
@sawa: โปรดทราบว่าตัวอย่างของคุณคือjqueryข้อโต้แย้งแคชเว็บของ amon เหตุผลที่อยู่เบื้องหลังคำตอบของฉันคือการอธิบายสถานการณ์ต่าง ๆ ที่ "ไม่มีหมายเลขรุ่น" อาจเป็นตัวเลือกที่ดีกว่า
Doc Brown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.