जब GitHub ने पहली बार 2008 में पुल अनुरोध (PR) को वापस भेज दिया, तो इसने एक सामाजिक वर्कफ़्लो में एक सादे-पाठ को लपेट दिया: टिप्पणियाँ, अनुमोदन, और एक मर्ज बटन जिसे महत्वपूर्ण रूप से किसी अन्य डेवलपर से कम से कम एक अंगूठे के बिना प्रकाश करने से इनकार कर दिया। यह डिज़ाइन आधुनिक सॉफ्टवेयर में हार्ड-वायर्ड जवाबदेही का निर्णय लेता है और मेनिनर्स को दालान वार्तालापों या ई-मेल पैच से परे पैमाने देता है।

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

अब जब बड़ी भाषा मॉडल (एलएलएम) प्रोजेक्ट्स को स्कैफोल्ड कर सकते हैं, पीआरएस फाइल कर सकते हैं, और यहां तक कि उन टिप्पणियों की समीक्षा करने के लिए उत्तर दे सकते हैं जो उन्होंने खुद लिखी थी, तो स्पष्ट अगला सवाल यह है कि कोड के लिए कौन जवाबदेह है जो एक मॉडल से आता है?

GitHub में, हमें लगता है कि उत्तर मौलिक रूप से नहीं बदला है: यह डेवलपर है जो “मर्ज” हिट करता है। लेकिन जो कुछ भी बदल गया है वह सब कुछ है जो उस क्लिक से पहले होता है।

इस लेख में, हम यह पता लगाएंगे कि हम एक ऐसी दुनिया के लिए कोड की समीक्षा कैसे कर रहे हैं, जहां डेवलपर्स तेजी से एआई के साथ काम करते हैं (और आपकी टीम भी कैसे कर सकती है)।

हमने GitHub Copilot की कोड समीक्षा क्षमताओं से क्या सीखा

इस साल की शुरुआत में, GitHub Copilot Code Review टीम ने अपनी कोड समीक्षा प्रक्रिया के बारे में डेवलपर्स के साथ गहन साक्षात्कार आयोजित किए। उन्होंने अपने कोड रिव्यू वर्कफ़्लो के माध्यम से भी हमें चलाया। इन साक्षात्कारों में तीन सुसंगत पैटर्न सामने आए:

  1. एआई के लिए कोई विशेष उपचार नहीं: समीक्षक ग्रिल्ड मॉडल-जनित अन्य डेवलपर्स के रूप में कठिन हैं।
  2. स्व समीक्षा ने फर्श को उठाया: डेवलपर्स कौन पीआर खोलने से पहले एक कोपिलॉट समीक्षा चलाई अक्सर तुच्छ नाइट-पिक्स (यानी, छंटनी की गई आयात, लापता परीक्षण) के एक पूरे वर्ग को मिटा दिया जाता है, लगभग एक तिहाई से पीछे-पीछे काटना।
  3. AI मानव निर्णय के लिए कोई प्रतिस्थापन नहीं था: प्रोग्रामिंग में अक्सर ट्रेड-ऑफ शामिल होते हैं। LLMS आपको उन ट्रेड-ऑफ के बारे में सूचित कर सकता है, लेकिन किसी को आपके संगठन के लक्ष्यों और मानकों के आधार पर क्या रास्ता लेना है, इसके बारे में कॉल करना होगा।

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

आज क्या कर सकता है (और नहीं) संभालना

LLMs पहले से ही एक समीक्षा की “पीस” परत पर महान हैं:

  • यांत्रिक स्कैनिंग। “क्या कोई टाइपो है?” “क्या सभी तर्कों का उपयोग किया जाता है?”
  • पैटर्न मिलान। “यह SQL इंजेक्शन की तरह दिखता है” या “आप उस वादे का इंतजार करना भूल गए।”
  • पांडित्य की स्थिरता। “वैरिएबल नाम स्नेक_केस यहाँ, कैमलकेस वहां।”

जल्द ही वे और भी अधिक करने में सक्षम होंगे, जैसे कि उत्पाद और डोमेन संदर्भ को समझें। लेकिन वे अभी भी कम हैं:

  • वास्तुकला और व्यापार-बंद। क्या हमें इस सेवा को विभाजित करना चाहिए? स्थानीय रूप से कैश?
  • मेंटरशिप। की व्याख्या क्यों एक पैटर्न मायने रखता है और इसे कब तोड़ना है।
  • मान। क्या हमें इस सुविधा का निर्माण करना चाहिए?

वे अंतराल डेवलपर्स को लूप और पायलट की सीट पर रखते हैं। यह सिद्धांत हमारे लिए मूलभूत है क्योंकि हम GitHub Copilot को विकसित करना जारी रखते हैं।

आधुनिक कोड समीक्षाओं के लिए एक प्लेबुक

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

अपने IDE में अपने कोड की समीक्षा करने के लिए AI का उपयोग करें

अपने कोड को धक्का देने से पहले, अपने IDE में GitHub Copilot कोड की समीक्षा करें स्पष्ट सामान को पकड़ने के लिए ताकि आपके साथी उन बारीक मुद्दों पर ध्यान केंद्रित कर सकें, जिनके लिए डेवलपर अंतर्दृष्टि की आवश्यकता होती है। कोपिलॉट कोड की समीक्षा आपके मंचन डिफ को कंघी कर सकती है, डॉकस्ट्रिंग का सुझाव दे सकती है, और फ्लैग नल डेरेफेंस। वहां से, आप अपने पीआर को जमा करने से पहले यह सब कुछ ठीक कर सकते हैं ताकि टीम के साथी कभी भी शोर न देख सकें।

अपने कोड का स्वामित्व लें

सिर्फ इसलिए कि आपने कोड उत्पन्न करने के लिए AI का उपयोग किया है इसका मतलब यह नहीं है कि यह आपका कोड नहीं है। एक बार जब आप कोड करें, तो आप इसके लिए जिम्मेदार हैं। इसका मतलब यह है कि यह क्या करता है, यह सुनिश्चित करना कि यह आपकी टीम के मानकों का अनुसरण करता है, और यह सुनिश्चित करता है कि यह आपके कोडबेस के बाकी हिस्सों के साथ अच्छी तरह से एकीकृत हो।

यदि कोई AI एजेंट कोड लिखता है, तो यह मेरे नाम को साफ करने के लिए है, इससे पहले कि मेरा नाम गिट दोष में दिखाई दे।

जॉन विगिन्स, मशीन लर्निंग इंजीनियर और प्रतिक्रिया विज्ञान

स्वचालित CI गेट्स के माध्यम से अपना कोड चलाएं

आपकी पाइपलाइन पहले से ही यूनिट टेस्ट, सीक्रेट स्कैनिंग, कोडक्यूएल, डिपेंडेंसी चेक, स्टाइल लाइनर्स चला रही है। ऐसा करते रहना। तेजी से विफल, जोर से विफल।

व्यक्तिगत कोड स्वच्छता के लिए व्यावहारिक सुझाव:

  • अपने आईडीई में अपने स्वयं के कोड की समीक्षा करें।
  • अपनी टीम के सम्मेलनों से मेल खाने के लिए चर नाम, टिप्पणियां और संरचना सुनिश्चित करें।
  • पुल अनुरोधों में इसे शामिल करने से पहले एआई-जनित कोड को अच्छी तरह से परीक्षण करें।

उन क्षेत्रों पर ध्यान केंद्रित करने के लिए AI का उपयोग करें जहां आपका निर्णय महत्वपूर्ण है

कोड समीक्षाओं में एआई की वास्तविक शक्ति डेवलपर्स को समीक्षकों के रूप में बदलने में नहीं है। यह नियमित काम को संभालने में है जो समीक्षा प्रक्रिया को कम कर सकता है, डेवलपर्स को ध्यान केंद्रित करने के लिए मुक्त कर सकता है जहां उनका निर्णय सबसे मूल्यवान है।

AI आपके मौजूदा स्वचालित चेक को प्रतिस्थापित नहीं करता है।

सुनिश्चित करें कि टेस्ट पास, कवरेज मेट्रिक्स मिले हैं, और स्टेटिक एनालिसिस टूल्स ने डेवलपर समीक्षा शुरू होने से पहले अपना काम किया है। यह अधिक सार्थक चर्चा के लिए एक ठोस आधार बनाता है।

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

स्पष्ट रूप से भूमिकाओं को परिभाषित करें

जब मानव निर्णय पूर्वता लेता है, तो एआई प्रतिक्रिया पर विचार किया जाना चाहिए। उदाहरण के लिए, आपको कोड आर्किटेक्चर और व्यावसायिक लक्ष्यों और संगठनात्मक मूल्यों के साथ स्थिरता के लिए अन्य डेवलपर्स पर भरोसा करना चाहिए। यह विशेष रूप से लंबे दोहराव वाले पीएस की समीक्षा करने के लिए एआई का उपयोग करने के लिए उपयोगी है जहां छोटी चीजों को याद करना आसान हो सकता है।

एक स्थायी AI-ASSISTED समीक्षा प्रक्रिया बनाने के लिए कार्यान्वयन युक्तियाँ

  • दस्तावेज़ स्पष्ट दिशानिर्देश यह निर्दिष्ट करता है कि कोड समीक्षाओं में AI का उपयोग कब करना है, किस प्रकार की प्रतिक्रिया पर भरोसा करना है, और जब डेवलपर्स AI कोड समीक्षा से असहमत हैं, तो कैसे आगे बढ़ें। उदाहरण के लिए, GitHub Copilot के साथ, आप स्पष्ट नियमों को सेट करने के लिए कस्टम निर्देशों का उपयोग कर सकते हैं कि कैसे कोपिलॉट आपके कोड के साथ संलग्न है
  • नियमित रूप से दिशानिर्देश अपडेट करें टीम की प्रतिक्रिया और एआई क्षमताओं को विकसित करने के आधार पर। याद रखें कि जैसे ही आपका कोडबेस और एआई टूल विकसित होते हैं, आज जो काम करता है वह कल काम नहीं कर सकता है।
  • खुली टीम चर्चा को प्रोत्साहित करें AI-ASSISTED समीक्षाओं की ताकत और सीमाओं के बारे में। सभी को सीखने और उनके दृष्टिकोण को बेहतर बनाने में मदद करने के लिए सकारात्मक और नकारात्मक दोनों अनुभवों को साझा करें।
  • स्वचालन को लगातार परिष्कृत करें अपनी स्वचालित परीक्षण रणनीति में सुधार करने के लिए समीक्षकों से प्रतिक्रिया का उपयोग करके। पैटर्न की पहचान करें जहां आवर्ती मुद्दों के समाधान को स्वचालित किया जा सकता है।

डेवलपर निर्णय महत्वपूर्ण है

जबकि AI कोड समीक्षाओं में नियमित कार्य को संभाल सकता है, डेवलपर निर्णय वास्तुशिल्प निर्णयों, सलाह और ज्ञान हस्तांतरण, और संदर्भ-विशिष्ट निर्णयों के लिए अपूरणीय है, जिसमें आपके उत्पाद और उपयोगकर्ताओं की समझ की आवश्यकता होती है।

और यहां तक कि एलएलएम के रूप में होशियार हो जाते हैं, तीन समीक्षा कार्य हठ हो रहे हैं:

  1. आर्किटेक्चर ट्रेड-ऑफ: क्या हमें इस सेवा को विभाजित करना चाहिए? स्थानीय रूप से कैश? अभी या बाद में टेक ऋण का भुगतान करें?
  2. संरक्षण और संस्कृति: पीआर थ्रेड्स टीम क्लासरूम हैं। एक बॉट एक जूनियर इंजीनियर को उस अजीब रेगेक्स के पीछे युद्ध की कहानी नहीं बता सकता है।
  3. नैतिकता और उत्पाद मूल्य: “क्या हमें भी इसका निर्माण करना चाहिए?” एक सवाल है AI जवाब नहीं दे सकता है।

लक्ष्य डेवलपर्स को अधिक प्रभावी बनाने के लिए है कि वे इस बात पर ध्यान केंद्रित करें कि वे क्या करते हैं।

और अधिक जानें के बारे में GitHub Copilot के साथ कोड समीक्षा>

द्वारा लिखित

वह shwer

वरिष्ठ उत्पाद प्रबंधक, गीथब



स्रोत लिंक