लेगेसी कोडबेस विश्लेषण के लिए एजेंटों का उपयोग करने के व्यावहारिक तरीके

Computing/Software4분 읽기

TuBrief 편집팀 원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다. 원본 영상: मैंने Grep का इस्तेमाल बंद कर दिया और मेरा एजेंट 10 गुना तेज़ हो गया · Better Stack

बड़े पैमाने के लेगेसी प्रोजेक्ट्स पर काम करने वाले इंजीनियर हर दिन 2 घंटे कोड के ढेर को खंगालने में बिताते हैं। grep के साथ स्ट्रिंग सर्च करने का तरीका अब अपनी सीमा तक पहुँच चुका है। भले ही आप AI एजेंटों को अपनाना चाहते हों, लेकिन वास्तविकता यह है कि यह समझ पाना मुश्किल होता है कि उन्हें वर्कफ़्लो में कैसे शामिल किया जाए। यह लेख उन विशिष्ट तकनीकी प्रक्रियाओं को कवर करता है जो एजेंटों को केवल एक चैटिंग बॉट के बजाय उत्पादकता बढ़ाने वाले टूल के रूप में स्थापित करती हैं।

शोर (Noise) को पहले हटाएँ

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

निम्नलिखित 3 बातों को तुरंत लागू करें:

  1. प्रोजेक्ट रूट में एक .cursorignore फ़ाइल बनाएँ। /dist, /build, /target, node_modules जैसे विशाल बिल्ड आर्टिफैक्ट्स को पूरी तरह से बाहर रखें।
  2. Protobuf स्टब्स या स्वचालित रूप से जेनरेट की गई *.gen.ts फ़ाइलों को भी बाहर रखें। यह एजेंट को ऐसा कोड बनाने से रोकेगा जो बैकवर्ड कम्पैटिबिलिटी (backward compatibility) की उपेक्षा करता है।
  3. मर्कल ट्री (Merkle tree) आधारित सिंक्रोनाइज़ेशन टूल का उपयोग करें। हर बार पूरे इंडेक्स को फिर से बनाने के बजाय, केवल संशोधित फ़ाइलों के हैश मान को अपडेट करें, जिससे इंडेक्सिंग की गति 3 गुना से अधिक बढ़ जाएगी।

सिंटैक्स ट्री के साथ निर्भरता (Dependency) को ट्रैक करें

टेक्स्ट-आधारित खोज जटिल इनहेरिटेंस संबंधों को कभी नहीं ढूँढ पाएगी। आपको ast-grep जैसे टूल के साथ कोड के सिंटैक्स ट्री (AST) का विश्लेषण करना होगा। इसे प्रॉम्प्ट में शामिल करने से आप साधारण खोज की तुलना में कहीं अधिक सटीक प्रश्न पूछ सकते हैं।

  1. विश्लेषण करने के लिए सिंटैक्स पैटर्न को परिभाषित करें। उदाहरण के लिए, ast-grep सिंटैक्स का उपयोग करके उन एसिंक्रोनस फ़ंक्शन पैटर्न को लिखें जिनमें त्रुटि प्रबंधन (error handling) की कमी है।
  2. एजेंट को @codebase टूल के साथ यह पैटर्न दें। इस दौरान ऐसे निर्देश जोड़ें जो इसे बाहरी लाइब्रेरी को अनदेखा करने और केवल आंतरिक मॉड्यूल के बीच इनहेरिटेंस संबंधों को खोजने के लिए सीमित करें।
  3. परिणामों को Mermaid डायग्राम के रूप में आउटपुट करने के लिए कहें। जटिल कॉल फ़्लो को विज़ुअलाइज़ करने से समस्या समाधान का समय लगभग 40% कम हो सकता है।

संशोधनों को परीक्षणों से सत्यापित करें

AI द्वारा सुझाया गया संशोधन आधा गलत होता है। यदि आप इसे बिना सोचे-समझे मर्ज करते हैं, तो तकनीकी ऋण (technical debt) बढ़ता जाएगा। CI पाइपलाइन में टेस्ट इम्पैक्ट एनालिसिस (TIA) को शामिल करके सत्यापन लूप को स्वचालित करें।

  1. एक ऐसी स्क्रिप्ट लिखें जो केवल परिवर्तित कोड से संबंधित टेस्ट चलाए, जैसे Jest का --findRelatedTests।
  2. एजेंट को निर्देश दें। एक लूप सेट करें जहाँ यदि कोई टेस्ट विफल होता है, तो एजेंट त्रुटि लॉग का विश्लेषण करे और स्वयं कोड को ठीक करे।
  3. CI चरण में CodeQL जैसे टूल शामिल करें। यह उन सुरक्षा खामियों को भी स्वचालित रूप से फ़िल्टर कर देगा जिन्हें मनुष्य आसानी से नहीं देख पाते।

इस लूप को बनाने से सिंटैक्स वैलिडेशन की सटीकता में नाटकीय रूप से सुधार हो सकता है। मौजूदा टूलचेन को पूरी तरह से त्यागने की आवश्यकता नहीं है। साधारण खोज के लिए ripgrep अभी भी एजेंटों से 10 गुना अधिक तेज़ है। टूल की विशेषताओं के आधार पर भूमिकाओं को अलग करना ही एक सीनियर इंजीनियर का वास्तविक कार्य है।

관련 영상

मैंने Grep का इस्तेमाल बंद कर दिया और मेरा एजेंट 10 गुना तेज़ हो गया

Better Stack8:06

커뮤니티의 다른 글

댓글

로그인하고 댓글을 남겨 보세요.

아직 댓글이 없습니다.