React डेवलपर इंटरव्यू सवाल

आपको class components से भरा एक बड़ा codebase विरासत में मिला है। उसे hooks पर ले जाने के लिए आप क्या तरीका अपनाएंगे?

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

छोटा जवाब

थोड़ा थोड़ा करके, और सिर्फ वहां जहां उससे कुछ मिलता हो। classes और function components आपस में ठीक चलते हैं, तो एक ही झटके में सब कुछ दोबारा लिखने की जरूरत नहीं। पहले पत्ते वाले components बदलिए, higher order components और render props में फंसे साझा logic को custom hooks में निकालिए, और error boundaries को class ही रहने दीजिए क्योंकि उन्हें अब भी वैसा ही रहना है। हर बदलाव को उसी काम से जोड़िए जो आप पहले से कर रहे हैं, और tests implementation नहीं, behavior के इर्द गिर्द रखिए।

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

यह migration के कपड़ों में समझ का सवाल है। इंटरव्यूअर देखना चाहते हैं कि आप ऐसे दोबारा लिखने में एक तिमाही जला देंगे जिसका user को कोई फायदा नहीं, या कोई थोड़ा थोड़ा वाला रास्ता निकालेंगे। वे व्यावहारिक जानकारी भी जांचते हैं: कौन से lifecycle तरीके effects पर साफ बैठते हैं, कौन से नहीं, और यह कि error boundaries बदली नहीं जा सकतीं, साथ ही पूरी coverage के बिना आप पुरानी गड़बड़ियां लौटने से कैसे बचते हैं।

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

  • एक झटके वाले rewrite से मना करें और बताएं कि यहां थोड़ा थोड़ा क्यों चलता है।
  • अपना क्रम बताएं: पहले पत्ते, साझा logic custom hooks में।
  • जो टुकड़े साफ नहीं बदलते उनका नाम लें।
  • बताएं कि पुरानी गड़बड़ियों से कैसे बचते हैं और प्रगति कैसे नापते हैं।

उदाहरण जवाब

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

मैं इसे एक project की तरह नहीं, एक आदत की तरह करूंगा। classes और function components आराम से साथ बैठते हैं, तो सब कुछ बदलने की कोई मजबूरी नहीं है, और ऐसा rewrite जिसमें user को कुछ नहीं दिखता, मनवाना मुश्किल है और bugs घुसाने का बढ़िया तरीका है। तो नियम यह बन जाता है: अगर आप पहले से कोई file बदल रहे हैं, और वह पत्ता या पत्ते के करीब है, तो उसे बदल दीजिए। असली इनाम वैसे भी components नहीं हैं, वह higher order components और render props में फंसा साझा logic है, क्योंकि वह custom hooks बन जाता है जिसे हर कोई इस्तेमाल कर सकता है। मेल के बारे में, componentDidMount और componentWillUnmount एक effect और उसके cleanup में जाते हैं, componentDidUpdate आम तौर पर मुद्दों के हिसाब से कई effects में बंट जाता है, और getDerivedStateFromProps लगभग हमेशा derived state निकलती है जिसे बस render के दौरान गिन लेना चाहिए। error boundaries class ही रहती हैं, यह नहीं बदला है। किसी भी गंभीर चीज को बदलने से पहले मुझे उसके इर्द गिर्द behavior के स्तर के tests चाहिए, जो अंदरूनी state नहीं बल्कि user को दिखने वाली चीज परखें, ताकि बदलाव साबित तौर पर तटस्थ रहे।

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

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

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

  • किन lifecycle तरीकों का कोई साफ hook जोड़ नहीं है?
  • चालीस screens को लपेटने वाले higher order component को कैसे बदलेंगे?
  • टीम को आधे रास्ते migration छोड़कर अटक जाने से कैसे रोकते हैं?

React डेवलपर के और सवाल

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

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

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

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

GhostPilot पाएं