कोड रिफैक्टरिंग परिदृश्यों और सर्वोत्तम प्रथाओं GitHub Copilot समीक्षा करें
रिफैक्टरिंग कोड अपने व्यवहार को बदले बिना मौजूदा कोड के पुनर्गठन की प्रक्रिया है। रिफैक्टरिंग के लाभों में कोड पठनीयता में सुधार, जटिलता को कम करना, कोड को बनाए रखना आसान बनाना और नई सुविधाओं को अधिक आसानी से जोड़ने की अनुमति देना शामिल है। GitHub Copilot सर्वोत्तम प्रथाओं को लागू करने से आपको अधिक कुशलता से काम करने और बेहतर परिणाम प्राप्त करने में मदद मिल सकती है।
सर्वोत्तम प्रथाओं GitHub Copilot
GitHub Copilot एक शक्तिशाली उपकरण है जो आपके कोड को रिफैक्टर और सुधारने में आपकी मदद कर सकता है। हालाँकि, सर्वोत्तम परिणाम प्राप्त करने के लिए, आपको GitHub Copilot का उपयोग करते समय कुछ सर्वोत्तम प्रथाओं का पालन करना चाहिए।
बेहतर संकेतों के साथ प्रतिक्रियाओं में सुधार करें
आप अधिक प्रभावी संकेत लिखकर GitHub Copilot की प्रतिक्रियाओं की गुणवत्ता बढ़ा सकते हैं। एक अच्छी तरह से तैयार किया गया प्रॉम्प्ट आपकी आवश्यकताओं को बेहतर ढंग से समझने और अधिक प्रासंगिक कोड सुझाव उत्पन्न करने में GitHub Copilot मदद कर सकता है।
निम्नलिखित दिशानिर्देश आपको बेहतर संकेत लिखने में मदद कर सकते हैं:
सामान्य शुरू करें, फिर विशिष्ट प्राप्त करें।
Generate a Calculator class. Add methods for addition, subtraction, multiplication, division, and factorial. Don't use any external libraries and don't use recursion.आप जो चाहते हैं उसके उदाहरण दें।
Generate a function that takes a string and returns the number of vowels in it. For example: findVowels("hello") returns 2, findVowels("sky") returns 0.जटिल कार्यों को सरल कार्यों में विभाजित करें।
GitHub Copilot को "भोजन योजनाकार ऐप जेनरेट करें" कहने के बजाय, अपने संकेतों को छोटे कार्यों में विभाजित करें।
उदाहरण के लिए:
Generate a function that takes a list of ingredients and returns a list of recipes.Generate a function that takes a list of recipes and returns a shopping list.Generate a function that takes a list of recipes and returns a meal plan for the week.सही संदर्भ प्रदान करें, जैसे कोड चयन, फ़ाइलें, टर्मिनल आउटपुट, और बहुत कुछ।
उदाहरण, संपूर्ण कोडबेस को संदर्भित करने के लिए
#codebaseचर का उपयोग करें: "#codebase में डेटाबेस का उपयोग connection string कहां किया जाता है?"अपने संकेतों पर पुनरावृति करें।
प्रतिक्रिया को परिशोधित या संशोधित करने के लिए अनुवर्ती संकेत प्रदान करें।
उदाहरण के लिए, यदि आप निम्न संकेत से प्रारंभ करते हैं:
"किसी संख्या के गुणनखंड की गणना करने के लिए एक फ़ंक्शन लिखें।
आप इसके साथ फ़ॉलो अप कर सकते हैं:
"कैशिंग का उपयोग करके रिकर्सन और ऑप्टिमाइज़ न करें।
और फिर:
"अर्थपूर्ण चर नामों का उपयोग करें."
चैट इतिहास को प्रासंगिक रखें।
GitHub Copilot संदर्भ प्रदान करने के लिए बातचीत के इतिहास का उपयोग करता है। अगर पिछले सवाल और जवाब प्रासंगिक नहीं हैं, तो उन्हें इतिहास से हटा दें. या, यदि आप संदर्भ बदलना चाहते हैं तो एक नया सत्र प्रारंभ करें।
सही संदर्भ और उपकरण प्रदान करें
चैट में अधिक सटीक और प्रासंगिक प्रतिक्रियाएं प्राप्त करने के लिए प्रासंगिक संदर्भ के साथ अपने संकेतों को समृद्ध करें। सही टूल के साथ, आप अपनी डेवलपर उत्पादकता बढ़ा सकते हैं।
एजेंट में, उन टूल को कॉन्फ़िगर करने के लिए टूल बटन का चयन करें जिनका आप उपयोग करना चाहते हैं या उन्हें स्पष्ट रूप से अपने प्रॉम्प्ट में जोड़ें।
कोड खोज करके GitHub Copilot को स्वचालित रूप से सही फ़ाइलें खोजने देने के लिए
#codebaseका उपयोग करें।किसी वेब पेज से सामग्री प्राप्त करने के लिए
#fetchउपकरण का उपयोग करें या GitHub रिपॉजिटरी पर कोड खोज करने के लिए#githubRepoका उपयोग करें।,
#<file name>, या#<folder name>का उपयोग#<symbol>करके अपने संकेत में फ़ाइलों, फ़ोल्डरों या प्रतीकों का संदर्भ लें।फ़ाइलों, फ़ोल्डरों या संपादक टैब को चैट प्रॉम्प्ट पर खींचें और छोड़ें।
परिदृश्य-विशिष्ट संदर्भ के लिए अपने चैट प्रॉम्प्ट में समस्याएं, परीक्षण विफलताएं या टर्मिनल आउटपुट जोड़ें।
नोट
जब आप एजेंट का उपयोग करते हैं, तो GitHub Copilot स्वायत्त रूप से आपके लिए प्रासंगिक फ़ाइलें और संदर्भ ढूंढता है।
सामान्य कोड रिफैक्टरिंग परिदृश्य
GitHub Copilot आपको कई तरीकों से कोड को जल्दी से रिफैक्टर करने में मदद कर सकता है। निम्न सूची में कोड रिफैक्टरिंग के लिए कुछ सामान्य परिदृश्य शामिल हैं:
- अक्षम कोड का अनुकूलन
- दोहराया कोड की सफाई
- कोड को अधिक संक्षिप्त बनाना
- कोड की जटिल इकाइयों को विभाजित करना
- बेहतर पठनीयता के लिए सशर्त कोड को फिर से लिखना
- एक अलग संरचना का उपयोग करने के लिए कोड को पुन: स्वरूपित करना
अक्षम कोड को अनुकूलित करने के लिए GitHub Copilot का उपयोग करें
GitHub Copilot कोड को अनुकूलित करने में आपकी सहायता कर सकता है। उदाहरण के लिए, आप कोड को अधिक तेज़ी से चलाने के लिए अपने कोड को ऑप्टिमाइज़ कर सकते हैं।
निम्नलिखित बैश स्क्रिप्ट पर विचार करें:
#!/bin/bash
# Find all .txt files and count the number of lines in each file
for file in $(find . -type f -name "*.txt"); do
wc -l "$file"
done
आप स्क्रिप्ट के विभिन्न पहलुओं को अनुकूलित करने के विकल्पों का मूल्यांकन करने के लिए चैट सुविधाओं का उपयोग कर सकते हैं, जैसे कि प्रदर्शन।
#!/bin/bash
# Find all .txt files and count the number of lines in each file (improved performance)
find . -type f -name "*.txt" -print0 | xargs -0 wc -l
बार-बार कोड को साफ़ करने के लिए GitHub Copilot का उपयोग करें
पुनरावृत्ति से बचने से आपके कोड को संशोधित करना और डीबग करना आसान हो जाएगा। उदाहरण के लिए, यदि एक ही गणना किसी फ़ाइल में विभिन्न स्थानों पर एक से अधिक बार की जाती है, तो आप गणना को फ़ंक्शन में ले जा सकते हैं।
निम्नलिखित बहुत ही सरल जावास्क्रिप्ट उदाहरण में, एक ही गणना (बेची गई वस्तुओं की संख्या से गुणा की गई आइटम की कीमत) दो स्थानों पर की जाती है।
let totalSales = 0;
let applePrice = 3;
let appleSold = 100;
totalSales += applePrice * appleSold;
let orangePrice = 2;
let orangeSold = 50;
totalSales += orangePrice * orangeSold;
console.log(`Total: ${totalSales}`);
आप चैट सुविधाओं से बार-बार की गई गणना को फ़ंक्शन में स्थानांतरित करने के लिए कह सकते हैं।
function calculateTotal(price, quantity) {
return price * quantity;
}
let totalSales = 0;
let applePrice = 3;
let appleSold = 100;
totalSales += calculateTotal(applePrice, appleSold);
let orangePrice = 2;
let orangeSold = 50;
totalSales += calculateTotal(orangePrice, orangeSold);
console.log(`Total: ${totalSales}`);
कोड को अधिक संक्षिप्त बनाने के लिए GitHub Copilot का उपयोग करें
यदि कोड अनावश्यक रूप से वर्बोज़ है तो इसे पढ़ना और बनाए रखना मुश्किल हो सकता है। GitHub Copilot चयनित कोड के अधिक संक्षिप्त संस्करण का सुझाव दे सकते हैं।
निम्नलिखित Python कोड एक आयत और एक वृत्त के क्षेत्र को आउटपुट करता है, लेकिन कोड को अधिक संक्षिप्त रूप से लिखा जा सकता है:
def calculate_area_of_rectangle(length, width):
area = length * width
return area
def calculate_area_of_circle(radius):
area = 3.14 * radius * radius
return area
rectangle_length = 5
rectangle_width = 10
rectangle_area = calculate_area_of_rectangle(rectangle_length, rectangle_width)
print(f"Area of rectangle: {rectangle_area}")
circle_radius = 7
circle_area = calculate_area_of_circle(circle_radius)
print(f"Area of circle: {circle_area}")
GitHub Copilot आपको कोड को रिफैक्टर करने और इसे और अधिक संक्षिप्त बनाने में मदद कर सकता है।
def calculate_area_of_rectangle(length, width):
return length * width
def calculate_area_of_circle(radius):
return 3.14 * radius * radius
rectangle_length = 5
rectangle_width = 10
print(f"Area of rectangle: {calculate_area_of_rectangle(rectangle_length, rectangle_width)}")
circle_radius = 7
print(f"Area of circle: {calculate_area_of_circle(circle_radius)}")
कोड की जटिल इकाइयों को विभाजित करने के लिए GitHub Copilot का उपयोग करें
बड़े तरीके या कार्य जो कई ऑपरेशन करते हैं, वे छोटे, सरल कार्यों की तुलना में पुन: उपयोग के लिए कम अवसर प्रदान करने की संभावना रखते हैं जो किसी विशेष ऑपरेशन को करने पर केंद्रित होते हैं। उन्हें समझना और डिबग करना भी अधिक कठिन हो सकता है।
GitHub Copilot आपको कोड के जटिल ब्लॉकों को छोटी इकाइयों में विभाजित करने में मदद कर सकता है जो पुन: उपयोग के लिए अधिक उपयुक्त हैं।
निम्नलिखित Python कोड एक बहुत ही सरल उदाहरण है, लेकिन यह एक एकल फ़ंक्शन को दो कार्यों में विभाजित करने के सिद्धांत को दर्शाता है जो विशेष संचालन करते हैं।
import pandas as pd
from pandas.io.formats.styler import Styler
def process_data(item, price):
# Cleanse the data
item = item.strip() # Remove leading and trailing whitespace
price = price.strip() # Remove leading and trailing whitespace
price = float(price) # Convert price to a float
# More cleansing operations can be added here
# Create and print a DataFrame
data = {'Item': [item], 'Price': [price]}
df = pd.DataFrame(data)
print(df.to_string(index=False))
# Example usage
item = " Apple "
price = " 1.50 "
process_data(item, price)
आप डेटा को साफ़ करने, डेटा प्रिंट करने और डेटा को संसाधित करने के लिए फ़ंक्शन बनाने के लिए कोड को रिफैक्टर करने के लिए GitHub Copilot का उपयोग कर सकते हैं।
import pandas as pd
from pandas.io.formats.styler import Styler
def cleanse_data(item, price):
# Cleanse the data
item = item.strip() # Remove leading and trailing whitespace
price = price.strip() # Remove leading and trailing whitespace
price = float(price) # Convert price to a float
return item, price
def print_data(item, price):
# Create and print a DataFrame
data = {'Item': [item], 'Price': [price]}
df = pd.DataFrame(data)
print(df.to_string(index=False))
def process_data(item, price):
item, price = cleanse_data(item, price)
print_data(item, price)
# Example usage
item = " Apple "
price = " 1.50 "
item, price = cleanse_data(item, price)
print_data(item, price)
बेहतर पठनीयता के लिए सशर्त कोड को फिर से लिखने के लिए GitHub Copilot का उपयोग करें
कोड लिखने के अक्सर कई तरीके होते हैं जो विभिन्न स्थितियों के आधार पर निष्पादित होते हैं या नहीं। कुछ सशर्त संरचनाएं विशेष उपयोग के मामलों के लिए दूसरों की तुलना में बेहतर अनुकूल हैं, और वैकल्पिक सशर्त संरचना चुनने से कभी-कभी कोड को पढ़ना आसान हो सकता है।
यह Java विधि यह निर्धारित करने के लिए if और else if कथनों की एक श्रृंखला का उपयोग करती है कि कौन सा ऑपरेशन करना है:
public string getSound(String animal) {
if (animal == null) {
System.out.println("Animal is null");
} else if (animal.equalsIgnoreCase("Dog")) {
return "bark";
} else if (animal.equalsIgnoreCase("Cat")) {
return "meow";
} else if (animal.equalsIgnoreCase("Bird")) {
return "tweet";
}
return "unknown";
}
एक स्विच स्टेटमेंट एक ही तर्क को लागू करने का एक बेहतर तरीका हो सकता है।
/**
* Returns the sound made by the specified animal.
*
* @param animal the name of the animal
* @return the sound made by the animal, or "unknown" if the animal is not recognized
*/
public String getAnimalSound(String animal) {
return switch (animal) {
case null -> "Animal is null";
case "Dog" -> "bark";
case "Cat" -> "meow";
case "Bird" -> "tweet";
default -> "unknown";
};
}
किसी भिन्न संरचना का उपयोग करने के लिए कोड को पुन: स्वरूपित करने के लिए GitHub Copilot का उपयोग करें
मान लीजिए कि आपके पास जावास्क्रिप्ट में निम्न फ़ंक्शन है:
function listRepos(o, p) {
return fetch(`https://api.github.com/orgs/${o}/repos?per_page=${parseInt()}`)
.then(response => response.json())
.then( (data) => data);
}
यदि आपके कोडिंग मानकों के लिए आपको फ़ंक्शंस के लिए तीर संकेतन और पैरामीटर के लिए वर्णनात्मक नामों का उपयोग करने की आवश्यकता होती है, तो आप इन परिवर्तनों को करने में आपकी मदद करने के लिए GitHub Copilot का उपयोग कर सकते हैं.
const listRepositories = (organization, perPage) => {
return fetch(`https://api.github.com/orgs/${organization}/repos?per_page=${parseInt(perPage)}`)
.then(response => response.json())
.then(data => data);
};
सारांश
GitHub Copilot आपको विभिन्न तरीकों से कोड को रिफैक्टर करने में मदद कर सकता है। आप चैट दृश्य या इनलाइन चैट का उपयोग GitHub Copilot अक्षम कोड को अनुकूलित करने, बार-बार कोड को साफ़ करने, कोड को अधिक संक्षिप्त बनाने, कोड की जटिल इकाइयों को विभाजित करने, बेहतर पठनीयता के लिए सशर्त कोड को फिर से लिखने और एक अलग संरचना का उपयोग करने के लिए कोड को पुन: स्वरूपित करने के लिए कह सकते हैं।