पोस्ट
जेनरेटिव AI के साथ अपनी कोडिंग उत्पादकता बढ़ाने के 5 तरीके
31 जनवरी 2025 • 9 मिनट पढ़ना
एक सॉफ्टवेयर क्राफ्ट्समैन के रूप में, जिसके पास इस क्षेत्र में वर्षों का अनुभव है, मैंने 2023 में ChatGPT के परिचय के बाद से सॉफ्टवेयर विकास पर जेनरेटिव AI के प्रभाव को देखा है। व्यावहारिक अनुप्रयोग के माध्यम से, मैंने इस तकनीक का लाभ उठाने के लिए पांच शक्तिशाली तरीके पहचाने हैं जो उत्पादकता को बढ़ाते हैं।
1. बेहतर कोड खोज
जेनरेटिव AI का उपयोग करने का सबसे आम तरीका तकनीकी जानकारी खोजना है। पारंपरिक सर्च इंजन को सटीक शब्दावली की आवश्यकता होती है, जबकि जेनरेटिव AI अवधारणाओं और संदर्भ को समझता है। उदाहरण के लिए, जब मेथड पैरामीटर ऑप्टिमाइजेशन के सिद्धांत की खोज कर रहा था, तो मैंने पूछा:
प्रॉम्प्ट
प्रोग्रामिंग अवधारणा का नाम क्या है जहां आपको केवल वे पैरामीटर पास करने चाहिए जो वास्तव में मेथड द्वारा उपयोग किए जाते हैं? मेथड को ऐसे पैरामीटर पास करना जो मेथड द्वारा उपयोग नहीं किए जाते हैं, अनावश्यक निर्भरताएं बनाता है।
जेनरेटिव AI उस अवधारणा को समझता है जिसका मैं वर्णन कर रहा हूं (Law of Demeter) और सही उत्तर प्रदान करता है, जिससे कई खोजों की आवश्यकता समाप्त हो जाती है।
2. कुशल कोड जनरेशन
जेनरेटिव AI दोहराए जाने वाले कोडिंग कार्यों को स्वचालित करने में उत्कृष्ट है। हाल ही में, मुझे एक बड़ी JSON फ़ाइल को डेटाबेस इंसर्ट स्टेटमेंट में परिवर्तित करने की आवश्यकता थी। थकाऊ रूपांतरण कोड लिखने के बजाय, मैंने JSON डेटा को AI को स्पष्ट निर्देशों के साथ प्रदान किया ताकि MS SQL Server इंसर्ट स्टेटमेंट जेनरेट किए जा सकें। इस दृष्टिकोण ने घंटों के मैनुअल कोडिंग समय को बचाया और त्रुटियों की संभावना को कम किया।
प्रॉम्प्ट:
नीचे दिए गए JSON डेटा का उपयोग करके MS SQL Server के लिए इंसर्ट स्टेटमेंट जेनरेट करें जिन्हें dbo.Users टेबल में इंसर्ट किया जाएगा।
[
{
"Username": "musiclover87",
"Lastname": "Smith",
"Firstname": "Alice",
"Birthdate": "1987-06-12",
"Password": "password123",
"FavoriteIceCream": "Chocolate Chip Cookie Dough",
"FavoriteSuperhero": "Spider-Man"
},
{
"Username": "bookworm92",
"Lastname": "Johnson",
"Firstname": "Bob",
"Birthdate": "1992-03-21",
"Password": "securePassword",
"FavoriteIceCream": "Mint Chocolate Chip",
"FavoriteSuperhero": "Batman"
},
{
"Username": "gamergirl01",
"Lastname": "Williams",
"Firstname": "Carol",
"Birthdate": "2001-11-05",
"Password": "gamer4life",
"FavoriteIceCream": "Strawberry",
"FavoriteSuperhero": "Wonder Woman"
},
{
"Username": "techieguy95",
"Lastname": "Brown",
"Firstname": "David",
"Birthdate": "1995-08-18",
"Password": "techmaster",
"FavoriteIceCream": "Vanilla Bean",
"FavoriteSuperhero": "Iron Man"
},
{
"Username": "foodiequeen89",
"Lastname": "Davis",
"Firstname": "Emily",
"Birthdate": "1989-04-29",
"Password": "delicious123",
"FavoriteIceCream": "Salted Caramel",
"FavoriteSuperhero": "Captain Marvel"
},
{
"Username": "traveler76",
"Lastname": "Miller",
"Firstname": "Frank",
"Birthdate": "1976-12-02",
"Password": "adventuretime",
"FavoriteIceCream": "Coffee",
"FavoriteSuperhero": "Thor"
},
{
"Username": "fitnessfanatic98",
"Lastname": "Wilson",
"Firstname": "Grace",
"Birthdate": "1998-09-15",
"Password": "strongandfit",
"FavoriteIceCream": "Mango Sorbet",
"FavoriteSuperhero": "Black Widow"
},
{
"Username": "photographylover85",
"Lastname": "Moore",
"Firstname": "Henry",
"Birthdate": "1985-05-23",
"Password": "pictureperfect",
"FavoriteIceCream": "Pistachio",
"FavoriteSuperhero": "Superman"
},
{
"Username": "musicjunkie93",
"Lastname": "Taylor",
"Firstname": "Isabella",
"Birthdate": "1993-02-08",
"Password": "musicislife",
"FavoriteIceCream": "Rocky Road",
"FavoriteSuperhero": "Black Panther"
},
{
"Username": "sportsfanatic88",
"Lastname": "Anderson",
"Firstname": "Jack",
"Birthdate": "1988-10-30",
"Password": "goteamgo",
"FavoriteIceCream": "Cookies and Cream",
"FavoriteSuperhero": "Captain America"
}
]
आउटपुट:
-- dbo.Users टेबल में रिकॉर्ड इंसर्ट करना
INSERT INTO dbo.Users (Username, Lastname, Firstname, Birthdate, Password, FavoriteIceCream, FavoriteSuperhero)
VALUES
('musiclover87', 'Smith', 'Alice', '1987-06-12', 'password123', 'Chocolate Chip Cookie Dough', 'Spider-Man'),
('bookworm92', 'Johnson', 'Bob', '1992-03-21', 'securePassword', 'Mint Chocolate Chip', 'Batman'),
('gamergirl01', 'Williams', 'Carol', '2001-11-05', 'gamer4life', 'Strawberry', 'Wonder Woman'),
('techieguy95', 'Brown', 'David', '1995-08-18', 'techmaster', 'Vanilla Bean', 'Iron Man'),
('foodiequeen89', 'Davis', 'Emily', '1989-04-29', 'delicious123', 'Salted Caramel', 'Captain Marvel'),
('traveler76', 'Miller', 'Frank', '1976-12-02', 'adventuretime', 'Coffee', 'Thor'),
('fitnessfanatic98', 'Wilson', 'Grace', '1998-09-15', 'strongandfit', 'Mango Sorbet', 'Black Widow'),
('photographylover85', 'Moore', 'Henry', '1985-05-23', 'pictureperfect', 'Pistachio', 'Superman'),
('musicjunkie93', 'Taylor', 'Isabella', '1993-02-08', 'musicislife', 'Rocky Road', 'Black Panther'),
('sportsfanatic88', 'Anderson', 'Jack', '1988-10-30', 'goteamgo', 'Cookies and Cream', 'Captain America');
3. निर्बाध कोड अनुवाद
कोड अनुवाद एक और क्षेत्र है जहां जेनरेटिव AI अमूल्य साबित होता है। C# एप्लिकेशन को Python में परिवर्तित करने के लिए एक हाल के प्रोजेक्ट के दौरान, हमने AI का दो महत्वपूर्ण तरीकों से उपयोग किया:
-
Python से C# में सीधे फ़ंक्शन रूपांतरण
-
Entity Framework से SQLAlchemy में जटिल ORM अनुवाद
यह क्षमता हमारी माइग्रेशन प्रक्रिया को काफी तेज करती है और अनुवादों में सामंजस्य सुनिश्चित करती है।
Python को C# में परिवर्तित करना:
प्रॉम्प्ट:
निम्नलिखित Python कोड को C# में परिवर्तित करें।
def reverse_string(text):
"""
दिए गए स्ट्रिंग को उलट देता है।
Args: text: उलटा जाने वाली स्ट्रिंग।
Returns: उलटी हुई स्ट्रिंग।
"""
return text[::-1]
आउटपुट:
/// <summary>
/// दिए गए स्ट्रिंग को उलट देता है।
/// </summary>
/// <param name="text">उलटा जाने वाली स्ट्रिंग।</param>
/// <returns>उलटी हुई स्ट्रिंग।</returns>
public static string ReverseString(string text)
{
return new string(text.Reverse().ToArray());
}
4. स्वचालित कोड डॉक्यूमेंटेशन
डॉक्यूमेंटेशन आवश्यक है लेकिन अक्सर थकाऊ होता है। जेनरेटिव AI इस प्रक्रिया को दो तरीकों से सुव्यवस्थित करता है:
-
कोड सारांश: मौजूदा कोड का विश्लेषण करना और स्पष्ट, संक्षिप्त सारांश प्रदान करना
-
डॉक्यूमेंटेशन हेडर जनरेशन: व्यापक मेथड डॉक्यूमेंटेशन बनाना जो कोड गुणवत्ता मानकों को बनाए रखता है
उदाहरण के लिए, सॉर्टिंग एल्गोरिदम या जटिल व्यावसायिक तर्क को डॉक्यूमेंट करते समय, AI स्पष्ट, सटीक डॉक्यूमेंटेशन जेनरेट कर सकता है जो टीम के मानकों और सर्वोत्तम प्रथाओं का पालन करता है।
प्रॉम्प्ट:
नीचे दिए गए फ़ंक्शन के लिए एक doc हेडर जेनरेट करें, हेडर जोड़ें और doc हेडर के साथ पूरा फ़ंक्शन प्रिंट करें।
def bubble_sort(list_):
n = len(list_)
for i in range(n):
# अनुकूलन के लिए फ्लैग, यदि कोई स्वैप नहीं होता है, तो सूची सॉर्ट की जाती है
swapped = False
# अंतिम i तत्व पहले से ही अपनी जगह पर हैं
for j in range(0, n-i-1):
# स्वैप करें यदि पाया गया तत्व अगले तत्व से बड़ा है
if list_[j] > list_[j+1]:
list_[j], list_[j+1] = list_[j+1], list_[j]
swapped = True
# यदि आंतरिक लूप में कोई दो तत्व स्वैप नहीं किए गए, तो सूची सॉर्ट की जाती है
if not swapped:
break
return list_
आउटपुट:
def bubble_sort(list_):
"""
Bubble Sort एल्गोरिदम का उपयोग करके दी गई सूची को सॉर्ट करता है।
Args:
list_: सॉर्ट किए जाने वाले तत्वों की सूची। तत्व तुलनीय होने चाहिए।
Returns:
मूल सूची के सभी तत्वों वाली एक नई सूची आरोही क्रम में।
Example:
>>> bubble_sort([64, 34, 25, 12, 22, 11, 90])
[11, 12, 22, 25, 34, 64, 90]
"""
n = len(list_)
for i in range(n):
# अनुकूलन के लिए फ्लैग, यदि कोई स्वैप नहीं होता है, तो सूची सॉर्ट की जाती है
swapped = False
# अंतिम i तत्व पहले से ही अपनी जगह पर हैं
for j in range(0, n-i-1):
# स्वैप करें यदि पाया गया तत्व अगले तत्व से बड़ा है
if list_[j] > list_[j+1]:
list_[j], list_[j+1] = list_[j+1], list_[j]
swapped = True
# यदि आंतरिक लूप में कोई दो तत्व स्वैप नहीं किए गए, तो सूची सॉर्ट की जाती है
if not swapped:
break
return list_
5. एप्लिकेशन स्कैफोल्डिंग
शायद जेनरेटिव AI का सबसे प्रभावशाली अनुप्रयोग प्रारंभिक एप्लिकेशन संरचनाएं जेनरेट करने की क्षमता है। एक स्पष्ट स्कीमा या विनिर्देश दिए जाने पर, AI निम्नलिखित बना सकता है:
-
डेटाबेस निर्माण स्क्रिप्ट
-
ORM मैपिंग
-
बुनियादी API एंडपॉइंट
-
प्रारंभिक UI कार्यान्वयन
यह क्षमता बॉयलरप्लेट कोड पर खर्च किए जाने वाले समय को काफी कम करती है और आगे के विकास के लिए एक सुसंगत आधार सुनिश्चित करती है।
प्रॉम्प्ट:
आप एक बड़े निगम में एक सॉफ्टवेयर इंजीनियर हैं। निम्नलिखित डेटाबेस स्कीमा का उपयोग करके, Postgres में इन टेबल बनाने के लिए आवश्यक SQL स्क्रिप्ट जेनरेट करें। फिर, FastAPI के साथ उपयोग करने के लिए SQL Alchemy मैपिंग फ़ाइलें जेनरेट करें। अंत में, FastAPI का उपयोग करके एक सरल वेब UI जेनरेट करें जो ऑर्डर को सूचीबद्ध करे।
User
- UserId
- FirstName
- LastName
- Address
- Address2
- City
- State
- ZipCode
- Username
- Password
- IsActive
Client
- ClientId
- Name
- Address
- Address2
- City
- State
- ZipCode
- IsActive
Order
- OrderId
- OrderDate
- InvoiceNumber
- DueDate
- ClientId
- UserId
OrderDetail
- OrderDetailId
- OrderId
- Description
- Rate
- Quantity
- LineTotal
Ledger
- TransactionId
- Debit
- Credit
- OrderId
- TransactionDate
आउटपुट:
...
मैं आपको आउटपुट से बचा रहा हूं, लेकिन इसने FastAPI का उपयोग करके एक पूरी एप्लिकेशन जेनरेट की।
...
आइए पूछते हैं कि हम प्रारंभिक डिज़ाइन में सुधार के लिए क्या कर सकते हैं।
प्रॉम्प्ट 2:
यह एक बेहतरीन शुरुआत है। एप्लिकेशन डिज़ाइन में सुधार के लिए हम क्या कर सकते हैं?
आउटपुट:
बेहतर डिबगिंग और त्रुटि हैंडलिंग के लिए लॉगिंग लागू करें।
logging.py (वैकल्पिक)
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def log_error(error):
logger.error(f"एक त्रुटि हुई: {error}")
प्रॉम्प्ट 3:
क्या आप त्रुटि हैंडलिंग का उपयोग करने के लिए अपने सुझाव को लागू कर सकते हैं और मेरे लिए कोड जेनरेट कर सकते हैं?
आउटपुट:
यदि आप विशिष्ट अपवादों को विश्व स्तर पर हैंडल करना चाहते हैं, तो आप अपनी main.py फ़ाइल में वैश्विक अपवाद हैंडलर भी परिभाषित कर सकते हैं।
main.py
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
import app.routers.order_router as order_router
from .exceptions import OrderNotFoundException, InvalidInvoiceNumberException
app = FastAPI()
# राउटर को शामिल करें
app.include_router(order_router.router)
@app.exception_handler(OrderNotFoundException)
async def order_not_found_exception_handler(request: Request, exc: OrderNotFoundException):
return JSONResponse(
status_code=exc.status_code,
content={"detail": exc.detail},
)
@app.exception_handler(InvalidInvoiceNumberException)
async def invalid_invoice_number_exception_handler(request: Request, exc: InvalidInvoiceNumberException):
return JSONResponse(
status_code=exc.status_code,
content={"detail": exc.detail},
)
सर्वोत्तम प्रथाएं और विचार
जबकि जेनरेटिव AI शक्तिशाली है, यह महत्वपूर्ण है कि:
- जेनरेट किए गए कोड की समीक्षा करें और सत्यापित करें
- मौजूदा कोडबेस के साथ सामंजस्य बनाए रखें
- सुरक्षा निहितार्थों पर विचार करें
- जेनरेट किए गए कोड का पूरी तरह परीक्षण करें
- AI को इंजीनियरिंग निर्णय के लिए प्रतिस्थापन के बजाय एक सहायक के रूप में उपयोग करें
निष्कर्ष
जेनरेटिव AI आधुनिक सॉफ्टवेयर विकास में एक अपरिहार्य उपकरण बन गया है। इन पांच दृष्टिकोणों - बेहतर खोज, कोड जनरेशन, अनुवाद, डॉक्यूमेंटेशन और एप्लिकेशन स्कैफोल्डिंग - का लाभ उठाकर, डेवलपर्स कोड गुणवत्ता बनाए रखते हुए अपनी उत्पादकता में काफी वृद्धि कर सकते हैं।
मुख्य बात इन उपकरणों की क्षमताओं और सीमाओं को समझना और उन्हें मानव विशेषज्ञता को प्रतिस्थापित करने के बजाय बढ़ाने के लिए रणनीतिक रूप से उपयोग करना है। जैसे-जैसे ये तकनीकें विकसित होती हैं, विकास वर्कफ़्लो में उनका एकीकरण तेजी से मूल्यवान होता जाएगा।
लेखक: Chuck Conway एक AI इंजीनियर हैं जिनके पास सॉफ्टवेयर इंजीनियरिंग का लगभग 30 साल का अनुभव है। वह व्यावहारिक AI सिस्टम बनाते हैं—कंटेंट पाइपलाइन, इंफ्रास्ट्रक्चर एजेंट, और ऐसे टूल जो वास्तविक समस्याओं को हल करते हैं—और अपनी सीख को साझा करते हैं। सोशल मीडिया पर उनसे जुड़ें: X (@chuckconway) या YouTube और SubStack पर उनसे मिलें।