← नवीनतम पेपर
💻 computer science

From Custom Logic to APIs: Understanding and Recommending API Replacement Refactorings

यह शोध पत्र AKIRA प्रस्तुत करता है, जो एक हाइब्रिड फ्रेमवर्क है जो पैटर्न-डिटरमिनिस्टिक ह्यूरिस्टिक्स को रिफैक्टरिंग-अवेयर नॉलेज बेस के साथ जोड़ता है ताकि प्रभावी ढंग से API रिप्लेसमेंट रिफैक्टरिंग की पहचान और अनुशंसा की जा सके, जिससे मौजूदा अत्याधुनिक टूल्स की तुलना में काफी अधिक प्रिसिजन और रिकॉल प्राप्त होता है।

मूल लेखक: Bridget Nyirongo, Yanjie Jiang, Yuxia Zhang, Hui Liu

प्रकाशित 2026-06-08
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Bridget Nyirongo, Yanjie Jiang, Yuxia Zhang, Hui Liu

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आप एक व्यस्त रसोई चलाने वाले शेफ हैं। समय के साथ, आपने हर व्यंजन के लिए हाथ से प्याज काटने, लहसुन को बारीक करने और नींबू निचोड़ने की आदत विकसित कर ली है, भले ही आपके ठीक बगल में एक हाई-टेक फूड प्रोसेसर रखा हो जो सेकंडों में यह काम कर सकता है।

सॉफ्टवेयर डेवलपमेंट में बिल्कुल ऐसा ही होता है। प्रोग्रामर अक्सर सरल कार्यों (जैसे किसी संख्या का शून्य है या नहीं यह जांचना या किसी तारीख को फॉर्मेट करना) के लिए लंबे, जटिल कोड ब्लॉक लिखते हैं, जबकि एक मानक, पहले से बने "टूल" (API) का उपयोग करके इसे आसानी से किया जा सकता है। इसे API रिप्लेसमेंट रिफैक्टरिंग (API Replacement Refactoring) कहा जाता है। यह हाथ से कटे हुए प्याज को फूड प्रोसेसर से बदलने जैसा है: परिणाम का स्वाद वही रहता है, लेकिन रसोई अधिक साफ, तेज़ और प्रबंधित करने में आसान हो जाती है।

समस्या क्या है? इन अवसरों को खोजना कठिन है। मौजूदा टूल्स एक ऐसे शेफ की तरह हैं जो केवल विशिष्ट, स्पष्ट गलतियों (जैसे चूल्हा बंद करना भूल जाना) को खोजते हैं। वे उन सूक्ष्म, जटिल रेसिपीज़ को मिस कर देते हैं जहाँ कई मैनुअल स्टेप्स को एक सिंगल बटन प्रेस से बदला जा सकता था।

यह पेपर इस समस्या को हल करने के लिए AKIRA नामक एक नया सिस्टम पेश करता है। यह कैसे काम करता है, यहाँ सरल रूप में दिया गया है:

1. जांच (अनुभवजन्य अध्ययन - The Empirical Study)

एक समाधान बनाने से पहले, शोधकर्ताओं ने एक "मछली पकड़ने के अभियान" (fishing expedition) पर जाने का निर्णय लिया। उन्होंने छह लोकप्रिय ओपन-सोर्स सॉफ्टवेयर प्रोजेक्ट्स से 166,000 से अधिक अपडेट्स (कमिट्स) को देखा। उन्होंने इन अपडेट्स में से 1,800 को मैन्युअल रूप से खंगाला ताकि वास्तविक जीवन के उदाहरण मिल सकें जहाँ डेवलपर्स ने सफलतापूर्वक अपने "हाथ से कटे हुए" लॉजिक को "फूड प्रोसेसर" APIs के साथ बदला था।

उन्हें 366 पुष्ट मामले मिले। उन्होंने पाया कि ये बदलाव आमतौर पर दो तरीकों से होते हैं:

  • द सिंपल स्वैप (The Simple Swap): एक अव्यवस्थित "यदि यह, तो वह" वाले वाक्य को एक साफ, मानक कमांड में बदलना।
  • द बिग क्लीनअप (The Big Cleanup): तीन अलग-अलग टूल्स वाले 10-स्टेप वाले प्रोसेस को एक एकल, शक्तिशाली कमांड में समेटना।

उन्होंने महसूस किया कि पुराने टूल्स "बिग क्लीनअप्स" को नहीं पकड़ पाते थे क्योंकि वे कोड के क्या करने की कोशिश कर रहे हैं, इसके बजाय कोड के आकार (shape) पर बहुत अधिक केंद्रित थे।

2. समाधान: AKIRA (हाइब्रिड शेफ)

इसे ठीक करने के लिए, लेखकों ने AKIRA (Adaptive Knowledge Discovery and Retrieval) बनाया। AKIRA को एक स्मार्ट किचन असिस्टेंट के रूप में सोचें जो एक दो-स्तरीय रणनीति का उपयोग करता है:

  • टियर 1: द रूलबुक (नियततावादी ह्यूरिस्टिक्स - Deterministic Heuristics)
    यह "फास्ट लेन" है। AKIRA के पास 8 सख्त नियम हैं (जैसे "यदि आप नल (nulls) की जाँच करने वाला लूप देखते हैं, तो इसे इस विशिष्ट टूल से बदल दें")। यह उच्च सटीकता के साथ तुरंत आसान और स्पष्ट मामलों को पकड़ लेता है। यह एक स्पेल-चेकर की तरह है जो गलतियों को तुरंत पकड़ लेता है।

  • टियर 2: द स्मार्ट डिटेक्टिव (अनुकूली ज्ञान खोज - Adaptive Knowledge Discovery)
    जब रूलबुक को कोई मैच नहीं मिलता, तो AKIRA "डिटेक्टिव मोड" में स्विच हो जाता है। यह केवल कोड को नहीं देखता; यह उसके अर्थ को समझता है।

    • यह एक विशाल नॉलेज ग्राफ (एक बड़ा नक्शा कि विभिन्न टूल्स एक-दूसरे से कैसे संबंधित हैं) बनाता है।
    • यह कोड को पढ़ने और उसके इरादे (intent) को समझने के लिए एक AI एजेंट का उपयोग करता है (जैसे, "यह कोड एक एरर मैसेज प्रिंट करने की कोशिश कर रहा है")।
    • यह अपने मैप में खोजता है कि क्या कोई मानक टूल मौजूद है जो बिल्कुल वही काम करता है, भले ही कोड पूरी तरह से अलग दिखता हो।
    • महत्वपूर्ण बात यह है कि यह अपनी संवेदनशीलता को अनुकूलित करता है। यदि यह टेस्ट कोड देख रहा है, तो यह अधिक उदार है; यदि यह क्रिटिकल बिजनेस लॉजिक देख रहा है, तो यह अधिक सख्त है।

3. परिणाम (क्या यह काम कर गया?)

शोधकर्ताओं ने अन्य तरीकों के मुकाबले AKIRA का परीक्षण किया:

  • पुराने टूल्स: केवल लगभग 20% अवसर ही ढूंढ पाए (उन्होंने अधिकांश "बिग क्लीनअप्स" को मिस कर दिया)।
  • जेनेरिक AI (जैसे एक स्टैंडर्ड चैटबॉट): लगभग 30-50% ढूंढ पाए, लेकिन अक्सर गलत सलाह दी या गलत जानकारी (hallucinate) दी।
  • AKIRA: इसने 90% अवसर (Recall) ढूंढे और जब इसने सुझाव दिया तो यह 88% सही (Precision) था।

एक अलग, बाहरी डेटासेट के विरुद्ध परीक्षण में, AKIRA ने स्टेट-ऑफ-द-आर्ट परिणामों को 21% से बढ़ाकर 81% कर दिया।

मुख्य निष्कर्ष (The Bottom Line)

पेपर यह निष्कर्ष निकालता है कि आप इन रिफैक्टरिंग अवसरों को खोजने के लिए केवल एक विधि पर भरोसा नहीं कर सकते। आपको एक हाइब्रिड दृष्टिकोण की आवश्यकता है: आसान चीजों के लिए एक सख्त रूलबुक, और जटिल चीजों के लिए एक स्मार्ट, संदर्भ-जागरूक डिटेक्टिव।

इन दोनों को जोड़कर, AKIRA स्वचालित रूप से डेवलपर्स को बता सकता है, "हे, आप बिना किसी कारण के इतना सारा मैनुअल काम कर रहे हैं। इसके बजाय बस इस मानक टूल का उपयोग करें," जिससे सॉफ्टवेयर अधिक साफ, सुरक्षित और रखरखाव में आसान बनता है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →