फुल स्टैक डेवलपर इंटरव्यू सवाल

real time अपडेट के लिए WebSockets, server sent events और polling के बीच क्या ट्रेड-ऑफ हैं?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

जब ट्रैफिक सिर्फ सर्वर से client की तरफ बहता है तो server sent events सबसे सस्ता विकल्प हैं: सादा HTTP, अपने आप दोबारा जुड़ना, और ज़्यादातर proxies से पार निकल जाना। WebSockets अपनी ऑपरेशनल लागत तब जायज़ ठहराते हैं जब आपको दोतरफा या बहुत बार होने वाला messaging चाहिए, जैसे chat या मिलकर की जाने वाली editing। जब अपडेट कम आते हों और कुछ सेकंड का बासीपन चल जाता हो, तब polling ठीक है, और वह दुनिया के हर network तथा load balancer से बच निकलती है।

इंटरव्यूअर यह क्यों पूछते हैं

real time वही जगह है जहां डेवलपर सबसे जटिल विकल्प पर सबसे पहले पहुंचते हैं। इंटरव्यूअर देखना चाहता है कि आप transport को असली ट्रैफिक के pattern से मिलाते हैं और यह सोचते हैं कि पैमाने पर क्या होगा: sticky connections, horizontal scaling, दोबारा जुड़ना, और client के offline रहते हुए छूटे संदेश। सही वजह से polling चुनना मज़बूत संकेत है, क्योंकि यह दिखाता है कि आप प्रभावशाली जवाब के पीछे भागने की जगह ऑपरेशनल लागत तौलते हैं।

अपना जवाब कैसे स्ट्रक्चर करें

  • हर विकल्प को उस ट्रैफिक की दिशा और बारंबारता से मिलाएं जिसके वह लायक है।
  • टिकाऊ connections की ऑपरेशनल लागत बताएं।
  • दोबारा जुड़ना और छूटे संदेश कवर करें।
  • जो परिस्थिति दी गई है, उसके लिए एक सिफारिश दें।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

पहला सवाल यह है कि client को उसी चैनल से कुछ वापस भेजना है या नहीं। notifications, live counters, किसी job की progress bar, कोई feed: सब एकतरफा हैं, और server sent events यह सब सामान्य HTTP पर संभाल लेते हैं, अपने आप दोबारा जुड़ने और last event id header के साथ ताकि client जहां छूटा वहीं से जारी रख सके। यह आखिरी बात कम आंकी जाती है। WebSockets chat, presence, या ऐसी किसी भी मिलजुलकर की जाने वाली चीज़ के लिए सही चुनाव हैं जहां clients बार बार भेजते हैं और latency मायने रखती है। पर लागत असली है: connections stateful होते हैं, तो एक instance से आगे बढ़ने का मतलब है nodes के बीच संदेश फैलाने के लिए Redis जैसी pub sub परत, साथ में health checks, backpressure और शुरुआती handshake पर auth। और polling कोई मज़ाक वाला जवाब नहीं है। जो admin dashboard मैंने बनाया, वहां अपडेट शायद मिनट में एक बार मायने रखते थे, तो window के focus पर ETag के साथ एक poll करीब पंद्रह लाइनों का कोड था, चलाने में कुछ खर्च नहीं हुआ, और उसने कभी किसी को रात में नहीं जगाया। मैं जटिलता का बजट वहां खर्च करना पसंद करूंगा जहां यूज़र उसे सच में महसूस करें।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • कई सर्वरों पर WebSocket connections को कैसे scale करेंगे?
  • जो संदेश client के disconnect रहते छूट गए, उन्हें कैसे पहुंचाते हैं?
  • socket connection को authenticate और authorize कैसे करते हैं?

फुल स्टैक डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं