คุณควรเวอร์ชั่นเว็บแอปพลิเคชัน?


35

เมื่อเร็ว ๆ นี้ฉันได้พูดคุยกับเพื่อนร่วมงานเกี่ยวกับการใช้งานเว็บเวอร์ชัน

ฉันไม่คิดว่าคุณต้องการมันเลยและถ้าคุณแค่ต้องการให้มีสติตรวจสอบเพื่อยืนยันการเปิดตัวล่าสุดของคุณคือการถ่ายทอดสดฉันคิดว่าวันที่ (YYMMDD) น่าจะดีพอ

ฉันอยู่นอกฐานหรือไม่ ฉันไม่มีจุดหรือไม่ ฉันควรใช้หมายเลขรุ่นของแอปพลิเคชันบนเว็บ

คำตอบ:


31

หากคุณขายเว็บแอปพลิเคชันเดียวกันให้กับลูกค้าหลายราย

หากเป็นเว็บไซต์ที่เคยติดตั้งในสถานที่แห่งเดียวความต้องการนั้นไม่น่ากลัวน้อยกว่า คุณจะมีความอ่อนไหวต่อปัญหาโซนเวลาน้อยลงเช่นกัน การวินิจฉัยปัญหาในไลบรารีเวอร์ชัน 1.0.2.25 นั้นมีจำนวนมากกว่าการค้นหารุ่นไลบรารี่ในวันที่ 3 พฤศจิกายน 2010 เวลา 11:15 น.


2
หากคุณขายเว็บแอปพลิเคชันเดียวกันให้กับลูกค้าหลายราย จริง 100%!
Gopi

8
ฉันไม่เห็นด้วย การกำหนดเวอร์ชันของรีลีสของคุณนั้นสำคัญเสมอเว็บแอปหรือไม่ นี่คือการปฏิบัติพื้นฐานในวิธีการพัฒนาใด ๆ (ยกเว้นการเข้ารหัสคาวบอย)
Martin Wickman

2
@Sri มาร์: ยังเป็นคำหลักที่นี่ :)
มาร์ติน Wickman

2
@sri, stacktraces ขึ้นอยู่กับเวอร์ชันสูง หากคุณมีรายงานข้อผิดพลาดพร้อมกับสแต็คเทรซคุณจะต้องสามารถ - ได้อย่างรวดเร็วและมีความแน่นอน - มีซอร์สโค้ดที่สอดคล้องกับสแต็คเทรซนั้นแม้ว่าจะมีการออกเวอร์ชันที่ใหม่กว่า ซอฟต์แวร์บันทึกการทำงาน Java รุ่นใหม่ยังนำเสนอข้อมูลการกำหนดเวอร์ชันใน stacktrace เอง

1
@anna lear - มันเกิดขึ้นกับฉันที่ฉันไม่เคยตอบสนองคุณเกี่ยวกับสิ่งที่วันที่ ในการกำหนดเวอร์ชัน YYMMDD คุณตัวอย่างของ "3 พฤศจิกายน 2010 11:15 น." จะได้รับการอัปเกรดเป็น 101103 ดังนั้นจึงเป็น 'เวอร์ชัน' ตามวันที่
John MacIntyre

12

หากคุณสามารถทำให้หมายเลขเวอร์ชันเป็นอัตโนมัติใน DLLs ของแอปพลิเคชันของคุณมันจะไม่เป็นอันตราย มันจะช่วยให้คุณติดตามเวอร์ชัน

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

ฉันจะตรวจสอบอัตโนมัติ - มันเป็นสิ่งที่คุณสามารถตั้งค่าได้ครั้งเดียวและใช้มันหาก / เมื่อคุณต้องการ


อัตโนมัติรวมถึงแท็ก VCS สำหรับแต่ละบิลด์ AFAIK ระบบการสร้างส่วนใหญ่สามารถทำได้ในทุกวันนี้
JensG

9

ผู้ใช้ของคุณไม่สนใจเกี่ยวกับหมายเลขรุ่นเนื่องจากพวกเขามีรุ่นล่าสุดและยอดเยี่ยมที่สุดอยู่เสมอ แต่คุณเป็นหนี้ตัวคุณเอง (และทีมของคุณ) ที่จะรู้ว่ารุ่นใดที่ทำงานอยู่ ในที่สุดแหล่งที่มาของการพัฒนาของคุณไม่ซิงค์กับรหัสสดและแน่นอนคุณต้องรู้ ดังนั้นติดป้ายกำกับการเผยแพร่ของคุณในทรี svn / git และทำเครื่องหมายเว็บแอปด้วยแท็กนั้น


1
อย่างแน่นอน คุณไม่สามารถที่จะมีรหัสที่ไม่มีใครขัดขวางได้ แม้ว่าเวอร์ชั่นนั้นจะเป็นรุ่น SVN / hg / git
พอลนาธาน

9

ถ้าคุณมีอินสแตนซ์ dev / ทดสอบมันค่อนข้างสำคัญที่สมาชิกในทีมจะสามารถดูว่าบิลด์ / บิลด์ใดที่พวกเขากำลังทดสอบ


4

นอกจากสิ่งที่คนอื่นพูดแล้วฉันจะเพิ่มเวอร์ชันนั้นก็สำคัญเช่นกันจากมุมมองทางการตลาด รุ่นใหม่เป็นสิ่งใหม่ที่สามารถทำการตลาดกับลูกค้าที่มีศักยภาพหรือที่มีอยู่ ช่วยให้ลูกค้ารู้ว่ามีอะไร 'ใหม่' และเห็นว่าสิ่งต่าง ๆ กำลังก้าวไปข้างหน้า มันมีการจัดกลุ่มที่ดีของคุณสมบัติใหม่ และดูเป็นมืออาชีพมากขึ้น


4

ฉันบอกว่าสำหรับทุกอย่างยกเว้นเว็บแอปพลิเคชั่นที่น่ารำคาญคุณควรทำมัน ที่นี่มีสองแนวคิดที่แตกต่างกันเล็กน้อย:

  1. แอปพลิเคชั่นโดยรวม
  2. แต่ละไฟล์

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

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


นี่ทำให้ฉันคิดถึงความคิดในภาษาศาสตร์ ว่ากันว่าหากคุณไม่สามารถแสดงบางสิ่งบางอย่างในภาษาคุณไม่สามารถคิดถึงมัน (ในภาษานั้น) ฉันคิดถึงคำว่า 'Schadenfreude' ในภาษาเยอรมัน มันง่ายกว่าที่จะคิด (และพูด) ความคิดเรื่อง "ความรู้สึกดีใจเพราะความโชคร้ายของคนอื่น" โดยอ้างถึงคำนั้นมากกว่าคำจำกัดความ นั่นคือเหตุผลที่คำนี้ใช้ในภาษาอังกฤษ

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


4

คุณควรปรับรุ่นเว็บแอปพลิเคชันของคุณด้วยบิลด์บิลด์จากบิลด์เซิร์ฟเวอร์ของคุณและกำหนดไอดีนั้นไว้ในรายงานบั๊กทั้งหมด

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


1

จากคำถามของคุณเป็นที่ชัดเจนว่าคุณมีเว็บแอพพลิเคชั่นที่เรียบง่าย

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

  • เพียงหนึ่งตัวอย่างการทำงานในช่วงเวลานั้น แม้ว่าคุณจะมีเพียงคนในเว็บ แต่ถ้าคุณมีการติดตั้งเพิ่มเติมคุณจำเป็นต้องรู้ว่าลูกค้ารายใดกำลังใช้เวอร์ชันใดอยู่

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


เห็นด้วยการสร้างเว็บ api ที่ไม่มีใครขัดขวางนั้นเป็นความสามารถขั้นต้นที่คนส่วนใหญ่ไม่ไว้วางใจ และใช่ฉันกำลังพูดถึงตัวอย่างหนึ่งของแอป
John MacIntyre

พิจารณาประเด็นที่สามซึ่งยังใช้ได้แม้กับแอปพลิเคชันอินสแตนซ์เดี่ยว
OGrandeDiEnne

ฉันอ่านมันและในขณะที่มันสำคัญและมีความยุ่งยากแน่นอนฉันไม่แน่ใจว่าเป็นปัญหาเกี่ยวกับเวอร์ชัน นั่นไม่ใช่ปัญหาการปรับใช้อีกต่อไปใช่หรือไม่ KWIM?
John MacIntyre

ใช่และไม่. (มันเป็นเวลานานมาแล้ว แต่ฉันเดา .. ) ประเด็นก็คือถ้าคุณต้องการเวอร์ชั่นรหัสของคุณคุณอาจจำเป็นต้องปรับรุ่นโครงสร้าง db เช่นกัน
OGrandeDiEnne

0
  • ใช้ภายในเท่านั้นโดยมีฐานการติดตั้ง จำกัด ?
  • หรือมีแนวโน้มที่จะมีหลายรุ่นในป่า?

เรามีรุ่นเก่าเท่านั้นจึงใช้เฉพาะหมายเลขรุ่นสำหรับรุ่นสติตรวจสอบการโพสต์ เราไม่ต้องติดตามหลาย ๆ รุ่นที่ใช้งานในเวลาเดียวกัน


0

หากเว็บแอ็พพลิเคชันของคุณประกอบด้วยหลายโมดูลทั้งในไคลเอ็นต์และเซิร์ฟเวอร์แต่ละโมดูลควรเป็นเวอร์ชัน และการรวมกันของรุ่นโมดูลทั้งบนไคลเอนต์และเซิร์ฟเวอร์ควรได้รับรหัสที่ไม่ซ้ำกันรหัสที่ควรมีอยู่ในการบันทึกและข้อความผิดพลาดทั้งหมด

โดยใช้การประชุมนั้นมันจะเป็นไปได้ที่จะสร้างสถานะที่เว็บแอปอยู่ในช่วงเวลาที่กำหนด

ในความเห็นของฉันเนื่องจาก webapps วันนี้สร้างขึ้นโดยใช้ภาษาแบบไดนามิกทั้งสองฝั่งเซิร์ฟเวอร์และไคลเอนต์จึงไม่ควรมีเหตุผลในการโหลดแอปพลิเคชันเว็บที่อัปเดตใหม่เว้นแต่ผู้ใช้จะรีสตาร์ทเบราว์เซอร์

ควรอัปโหลดชิ้นส่วนหรือโมดูลที่อัปเดตแล้วในเว็บแอปพลิเคชันโดยไม่ส่งผลกระทบต่อสถานะโดยรวมของแอปพลิเคชัน

ทำไมคุณอาจถาม ด้วยการบังคับใช้นั้นแอปพลิเคชันทางเว็บจะออกแบบให้มีการเคลื่อนไหวที่ถูกต้องมากขึ้นถูกต้องและง่ายต่อการบำรุงรักษา หากเว็บแอปต้องการการอัพเดทเซิร์ฟเวอร์ / ไคลเอนต์พร้อมกันอยู่ตลอดเวลาแสดงว่าอาจไม่ได้ถูกวิธี


0

ใช่คุณควรทำเวอร์ชัน! และควรมีแท็กในระบบควบคุมการแก้ไขของคุณ (เช่นการโค่นล้ม, git, mercurial และอื่น ๆ ) ที่ตรงกับหมายเลขเวอร์ชั่น

แท็กช่วยให้คุณย้อนกลับและสร้างสาขาได้ ตัวอย่างเช่น: เวอร์ชันการผลิตปัจจุบันมีข้อบกพร่อง แต่คุณไม่สามารถแก้ไขได้เนื่องจากรหัสในเครื่องของคุณไม่พร้อมที่จะเปิดประตู หากคุณมีแท็กใน RCS ของคุณคุณสามารถแยกสาขาที่แท็กนั้นและแก้ไขข้อผิดพลาดในรหัสที่แน่นอนที่ใช้ในการผลิต


0

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

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

หากคุณกำลังกำหนดเวอร์ชันเว็บไซต์ของคุณแม้ว่าคุณสามารถเปลี่ยนการอ้างอิง css ทั้งหมดในงานสร้างของคุณเป็น mysite.css? v = 1234 ซึ่งจะช่วยให้คุณสามารถเก็บวันหมดอายุของอนาคตได้ไกลและไม่ต้องกังวลกับการเปลี่ยนแปลงในอนาคตเช่นเดียวกับการสร้างครั้งต่อไป จะเป็น mysite.css? v = 1235


0

ใช่คุณควรจะ. สำหรับเหตุผลในการเผยแพร่ชี้ไปที่คำตอบอื่น ๆ

แต่ฉันเห็นว่าทำไมคุณถามคำถาม แนวทางการใช้งานเว็บแอปเป็นตัวขับเคลื่อนต้นทุน มันตรงข้ามกับวิธีการหดห่อแบบดั้งเดิมซึ่งค่าใช้จ่ายรวมถึงสื่อทางกายภาพการจัดจำหน่ายการติดตั้งสำเนาของเอกสารการฝึกอบรมและการสนับสนุนทางเทคนิค สิ่งใดก็ตามที่สามารถยกเว้นได้ควรยกเว้น


0

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

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

สำหรับโครงการที่โฮสต์หลายรายการไม่ใช่ตัวเลือกจริงๆ โฮสต์ที่แตกต่างกันจะจบลงด้วยรุ่นที่แตกต่างกันและคุณจะต้องสามารถแยกพวกเขาออกจากส่วนท้ายของผู้ใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.