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

कोई बैकएंड बदलाव आपके API के clients को न तोड़ दे, यह आप कैसे रोकते हैं?

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

छोटा जवाब

contract को मशीन से जांचने लायक बनाएं। एक schema रखें, कोई OpenAPI दस्तावेज़ या protobuf definitions, जो कोड से बने या कोड के मुकाबले जांचे जाएं, और CI में एक compatibility जांच चलाएं जो breaking बदलाव पर fail हो, जैसे हटाया गया field या कसा हुआ type। अंदरूनी clients के लिए consumer driven contract tests जोड़ें, और events को उसी तरह version करें जैसे endpoints को करते हैं।

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

इंटरव्यूअर जानना चाहते हैं कि compatibility टूलिंग से लागू होती है या इस उम्मीद पर टिकी है कि किसी की नज़र पड़ जाएगी। वे version control में रखा schema, अपने आप चलने वाला diff gate, और HTTP के साथ साथ message payloads को कैसे कवर करते हैं, यह सुन रहे हैं। यह संगठन की हकीकत को भी छूता है: बदलने से पहले आपको कैसे पता चलता है कि endpoint को असल में कौन इस्तेमाल करता है।

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

  • contract को version control में रखें और कोड के साथ मेल में बनाए रखें।
  • CI gate के तौर पर अपने आप चलने वाला compatibility diff जोड़ें।
  • अंदरूनी consumers को contract tests से कवर करें।
  • बताएं कि कुछ भी बदलने से पहले असली consumers आप कैसे ढूंढते हैं।

उदाहरण जवाब

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

contract को ऐसी फाइल होना चाहिए जिसकी CI तुलना कर सके, वरना compatibility इस पर टिकी रहती है कि pull request की समीक्षा कौन कर रहा है। तो OpenAPI दस्तावेज़ repository में रहता है और handlers से बनता है, जिससे वह कल्पना बनकर बहकता नहीं, और एक job उसे main branch वाली प्रति से मिलाती है और किसी भी breaking चीज़ पर fail हो जाती है: हटाया गया field, नया ज़रूरी parameter, संकरा किया गया type। जोड़ना हमेशा चलता है। अंदरूनी consumers के लिए मुझे consumer driven contracts पसंद हैं, जहां हर client वह हिस्सा प्रकाशित करता है जिस पर वह सच में निर्भर है और मेरा build जांचता है कि मैं अब भी सबको पूरा करता हूं, तो मुझे build के समय पता चल जाता है, उनके on call से नहीं। events के साथ भी यही होता है, compatibility mode सेट किए हुए schema registry से, क्योंकि टूटा हुआ event payload टूटे endpoint से बुरा है, क्योंकि consumers asynchronously नाकाम होते हैं। और कुछ भी बदलने से पहले मैं per client request metrics देखता हूं, क्योंकि contract बताता है कि क्या संभव है और metrics बताते हैं कि असल में किसे फर्क पड़ेगा।

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

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

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

  • JSON response में breaking बदलाव किसे माना जाता है?
  • जो client बिना दस्तावेज़ वाले व्यवहार पर निर्भर हो, उसे आप कैसे संभालेंगे?
  • events के schema का विकास सालों तक आप कैसे संभालते हैं?

बैकएंड डेवलपर के और सवाल

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

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

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

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

GhostPilot पाएं