• NYT ने React 16 से React 18 में upgrade करते समय पहले इस्तेमाल हो रहे Enzyme से React Testing Library पर अपने test utility को migrate किया
    • 2016 से Enzyme का उपयोग किया जा रहा था, लेकिन React platform द्वारा React Testing Library की सिफारिश किए जाने के कारण यह बदलाव ज़रूरी हो गया
  • Enzyme DOM tree का string representation बनाता है, जबकि React Testing Library वास्तविक DOM tree बनाकर उसे पूरे DOM के एक हिस्से के रूप में render करता है
  • क्योंकि सैकड़ों files को migrate करना था, इसलिए site traffic बनाए रखना और service interruption रोकना महत्वपूर्ण था

माइग्रेशन रणनीति के तीन तरीके

  • Bulldozer approach
    • एक ही बार में पूरे fileset में बड़े पैमाने पर बदलाव करने का तरीका
    • code conflict का जोखिम अधिक होता है और collaboration कठिन हो जाती है
  • Consensus approach
    • engineers अलग-अलग files की ownership लेकर collaborative तरीके से काम करते हैं
    • नए projects या महत्वपूर्ण projects के लिए उपयुक्त
  • Piecemeal approach
    • अलग-अलग files में रणनीतिक और क्रमिक बदलाव करना
    • हर दिन लगातार updates करके धीरे-धीरे momentum बनाया जाता है

New York Times का चयन: Piecemeal approach

  • सबसे सरल files से बदलाव शुरू किया गया → पहले उन files पर काम किया गया जिनमें सिर्फ एक-दो lines बदलनी थीं
  • React Testing Library में DOM elements को ढूंढने और उनका test करने के तरीके पर फोकस किया गया
  • शुरुआती बदलाव पूरे होने के बाद धीरे-धीरे अधिक जटिल tests तक विस्तार करना संभव हुआ
  • जैसे-जैसे काम आगे बढ़ा, एक स्थिर pattern बनता गया जिससे बदलाव करना आसान होता गया
  • engineers के लिए इसमें आसानी से शामिल होना संभव हुआ, जिससे collaboration मज़बूत हुई

माइग्रेशन के नतीजे और उपलब्धियां

  • Piecemeal approach में समय अधिक लगता है, लेकिन इससे stability और लगातार प्रगति संभव होती है
  • codebase में एक समान pattern बनने से जटिल tests को भी आसानी से संभालना संभव हुआ
  • ऐसा माहौल बना जिसमें दूसरे engineers भी आसानी से शामिल होकर योगदान दे सकें
  • माइग्रेशन के दौरान bugs को न्यूनतम रखा गया और feature disruption रोका गया
  • माइग्रेशन की सफलता से technical debt कम करने और निरंतर development के बीच संतुलन बनाए रखना संभव हुआ

निष्कर्ष

  • Piecemeal approach के ज़रिए codebase को सफलतापूर्वक React Testing Library में migrate किया गया
  • क्रमिक बदलावों से collaboration मज़बूत हुई और code quality बनी रही
  • जटिल tests को भी एक समान pattern के आधार पर आसानी से संभालना संभव हो गया
  • रणनीतिक planning और technical debt को हल करने के संतुलन के साथ स्थिर माइग्रेशन पूरा किया गया

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.