เวลาเริ่มต้นของเว็บแอปพลิเคชันนั้นสำคัญจริง ๆ หรือไม่


11

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

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

ฉันทำงานกับเว็บแอพที่เริ่มต้นจาก 30 วินาทีถึง 4-5 นาที แต่เมื่อออนไลน์พวกเขาก็สั่นสะเทือน

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

ป.ล. ฉันหมายถึงเว็บแอปอย่างเคร่งครัดแอปเดสก์ท็อปถูกผูกไว้เพื่อเริ่มต้นอย่างรวดเร็ว


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

@ SuperUser: ไม่ต้องการเพียงแค่การสนทนา
JohnDoDo

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

@ ไซคลอปส์: จริง ๆ แล้วฉันสนใจในเหตุผลด้านเซิร์ฟเวอร์ของรั้วไม่ใช่จากด้านผู้ใช้
JohnDoDo

คำตอบ:


18

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

สำหรับสภาพแวดล้อมการผลิตมันไม่สำคัญจริงๆ ไม่ว่าจะเป็นการหยุดทำงานเพียงเล็กน้อยและ 5 นาทีก็ยังไม่มากหรือไม่และคุณต้องใช้การสลับสับเปลี่ยนแบบสด


ใช่ฉันคิดมากเกี่ยวกับวัฏจักรการพัฒนา แต่มันไม่ใช่ว่าเราเปลี่ยนเครื่องหมายจุลภาคปรับใช้เปลี่ยนชื่อตัวแปรปรับใช้ ฯลฯ ฉันใช้งานตัวเองในการพัฒนาสูงสุด 10 ครั้ง / วัน การเริ่มต้นหนึ่งนาทีหรือ 1.2 นั้นไม่แตกต่างกันมากนัก
JohnDoDo

7
@JohnDoDo: นั่นเป็นกระบวนการทำงานที่เป็นธรรมชาติจริง ๆ และมีวิธีการหลีกเลี่ยงการปรับใช้ที่ยาวนาน รอบการตอบรับที่รวดเร็วสามารถช่วยเพิ่มผลผลิตได้อย่างมหาศาล บางครั้งการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ เพิ่มขึ้นและการเห็นผลทันทีเป็นสิ่งที่คุณต้องการ 50 ปีที่แล้วผู้คนเขียนโปรแกรมบนกระดาษส่งพวกเขาไปยังผู้ปฏิบัติงานและได้รับผลการพิมพ์ในวันถัดไป - บางครั้งก็เป็นเพียงข้อผิดพลาดของคอมไพเลอร์ นั่นดูเหมือนจะเป็นวิธีที่ไม่มีประสิทธิภาพอย่างน่ากลัวสำหรับคุณหรือไม่ สำหรับโปรแกรมเมอร์หลาย ๆ คนการใช้งาน 10 ครั้งต่อวันของคุณดูเหมือนจะเป็นเช่นนั้น
Michael Borgwardt

1
ถ้าเป็นไปได้ประเมินตัวเลือกในการทำ "จำลอง" init หรือการให้โครงสร้างเป็นอนุกรมกับดิสก์ด้วยข้อมูลการทดสอบเพื่อเร่งเวลาเริ่มต้นในระหว่างการพัฒนา
Vinko Vrsalovic

ฉันเห็นด้วยกับ Vinko มีวิธีที่คุณสามารถปิดฟังก์ชั่น init () ราคาแพงเมื่อสร้างในโหมดดีบั๊กหรือไม่? ไม่ต้องกังวลถ้าสิ่งที่คุณกำลังเริ่มต้นจะให้ผลลัพธ์ที่แตกต่างกับ Dev และการผลิต
AndyMcKenna

4

ฉันเชื่อว่านี่เป็นกรณีที่หลักการวิภาษที่มีชื่อเสียงของ Hegel ในการเปลี่ยนจากปริมาณเป็นคุณภาพได้ผลจริง

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

นักพัฒนาแต่ละคนที่ปรับใช้โค้ดที่ไม่เหมาะสมกับการผลิตรู้ว่าการแก้ไขด่วนที่มีให้ใน 5 นาทีและใน 1 นาทีนั้นแตกต่างกันจริงๆ


2

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

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


2

คำถามนี้ไม่ถามเกี่ยวกับแพลตฟอร์มใด ๆ มีหลายแพลตฟอร์มที่เวลาเริ่มต้นสำคัญมาก

ตัวอย่างเช่นใน Google App Engine หากหน้าของคุณไม่ได้รับการเข้าถึง (หรือค่อนข้างจะเข้าถึงได้น้อยกว่าแอปพลิเคชันอื่นบนโหนดเดียวกัน) หน้านั้นจะถูกยกเลิกการโหลดในบางครั้ง

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

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


1

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

อาจใช้เวลานานกว่าในการตั้งโปรแกรมในลักษณะที่โหลดแอปนี้อย่างเกียจคร้าน แต่มีเพียงผู้มีส่วนได้ส่วนเสียเท่านั้นที่สามารถตัดสินได้ว่ามันคุ้มค่าหรือไม่ ฉันมีรายงานที่วิ่งใน 55 วินาที และเราได้มาจนถึง 35 ไม่มีใครสังเกตเห็น แม้ว่าฉันจะใช้เวลาสองเท่าในการรับจาก 35 ถึง 18 ทุกคนสังเกตเห็นและรู้สึกขอบคุณและประทับใจ การเปลี่ยนจาก 5 เป็น 3 นาทีสำหรับแอพที่ใช้สองสามครั้งต่อปีไม่ใช่เรื่องใหญ่ ผู้ใช้จะมีเวลาน้อยลงในการใช้ Facebook หรือซื้อกาแฟ

การรับรู้เป็นกุญแจสำคัญ หาก compay ไม่มีความสุขกับทีมพัฒนาโดยทั่วไปและแอพนี้โดยเฉพาะคุณอาจต้องการสร้างค่าความนิยมและเพิ่มความเร็วให้กับสิ่งนั้น


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