डेवलपर्स AI असिस्टेंट्स के साथ कोडिंग करते समय कौन सी गलतियां करते हैं?
डेवलपर्स द्वारा AI कोडिंग असिस्टेंट्स का सबसे आम गलत उपयोग, और bugs और vulnerabilities को ship करने से कैसे बचें।
AI असिस्टेंट्स जैसे Copilot, Claude, और Cursor के built-in मॉडल्स ने कोड लिखने की गति को बदल दिया है। इन्होंने यह नहीं बदला कि इसकी समीक्षा कितनी सावधानी से की जानी चाहिए। AI-असिस्टेड कोडिंग से जो नुकसान मैंने देखा है, वह मॉडल्स से नहीं, बल्कि कुछ दोहराई जाने वाली आदतों से आता है।
सुझाव पढ़े बिना स्वीकार करना
सबसे बड़ी समस्या यह है कि completion को tab-accept करना क्योंकि यह संभव दिखता है और compile होता है। संभव होना सही नहीं है। मैंने एक suggested SQL query को refactor के दौरान चुपचाप WHERE clause drop करते देखा है, और व्यक्ति ने इसे स्वीकार कर लिया क्योंकि variable names match कर रहे थे। अगर आप असिस्टेंट द्वारा दिया गया हर line उसी गति से नहीं पढ़ रहे जिस गति से आप किसी coworker के pull request को पढ़ते, तो आप कुछ ऐसा ship करेंगे जो आप समझते नहीं हैं। हर सुझाव को एक junior dev के first draft के रूप में मानें जो तेज़ है लेकिन आपके codebase के conventions को नहीं जानता।
इसे security-sensitive कोड के साथ विश्वास देना
AI असिस्टेंट्स को public code के विशाल पाइल पर train किया गया है, और उस कोड का बहुत हिस्सा security समस्याओं के साथ baked होता है। एक quick file upload handler के लिए पूछें और आपको अक्सर कुछ ऐसा मिलेगा जिसमें no extension check नहीं है, कोई size limit नहीं है, और एक path string concatenation से बनाया गया है os.path.join या safe library call की बजाय। Auth के साथ भी यही कहानी है: assistants JWTs को localStorage में store करने का सुझाव देते हैं, या secrets की तुलना == से करते हैं constant-time comparison की बजाय। कोई भी यह malicious नहीं है, यह सिर्फ training data में statistically common है। authentication, file I/O, deserialization, या SQL को छूने वाली किसी भी चीज़ के लिए, logic खुद लिखें या AI के output को उसी threat-modeling सवालों से गुज़ारें जो आप किसी नए code से पूछते: hostile input के साथ क्या होता है, अगर यह call fail हो तो क्या होता है, कौन और इस endpoint तक पहुंच सकता है।
इसे dependencies और APIs invent करने देना
मॉडल्स package names और function signatures को पूरे विश्वास के साथ hallucinate करते हैं। यह "slopsquatting" समस्या है — attackers उन fake package names को register करते हैं जो मॉडल्स बार-बार suggest करते हैं, इसलिए एक unverified pip install या npm install कुछ ऐसा pull down कर सकता है जो आपकी logging library बिल्कुल नहीं है। किसी भी dependency को add करने से पहले जिसे असिस्टेंट recommend करता है, check करें कि यह actually PyPI या npm पर exist करता है, इसके download count और last publish date को check करें, और अगर यह काफी छोटा है तो source को skim करें। वही सावधानी API calls पर लागू होती है: अगर असिस्टेंट एक method की reference देता है जिसे आप recognize नहीं करते, actual docs को check करें इससे पहले कि assume करें कि यह exist करता है।
अपने कोड का mental model खोना
जब आप खुद code लिखते हैं, तो आप एक mental map बनाते हैं कि प्रत्येक piece क्यों exist करता है। जब आप एक session में AI-generated code के बड़े blocks को accept करते हैं, तो वह map तेज़ी से thin हो जाता है। फिर तीन हफ्ते बाद एक bug दिखता है और आप code को debug कर रहे हैं जिसे आपने कभी लिखा ही नहीं और पूरी तरह याद नहीं रखते। fix यह नहीं है कि AI-generated code से बचें, यह है कि इतना slow down करें कि हर chunk को अपने आप को या एक teammate को समझाएं, इससे पहले कि इसे merge करें। अगर आप यह explain नहीं कर सकते कि एक function क्या करता है और क्यों ऐसे करता है, तो इसे अभी merge न करें।
टेस्ट्स को skip करना क्योंकि कोड
AI सहायता से लिखा गया, माइकल पिल्च (CISSP), Korra Studio द्वारा समीक्षित और प्रकाशित।
यह Korra Studio के ज्ञान आधार से एक नोट है — प्लेटफ़ॉर्म हर विषय को 1-टू-1 मेंटरिंग के साथ जोड़ता है।
मुफ़्त शुरू करेंarrow_forward