Skip to content

পোস্ট

জেনারেটিভ AI দিয়ে আপনার কোডিং উৎপাদনশীলতা বৃদ্ধির ৫টি উপায়

৩১ জানুয়ারী, ২০২৫ • 8 মিনিট পড়া

জেনারেটিভ AI দিয়ে আপনার কোডিং উৎপাদনশীলতা বৃদ্ধির ৫টি উপায়

একজন সফটওয়্যার কারিগর হিসেবে এই ক্ষেত্রে বছরের পর বছর অভিজ্ঞতা নিয়ে, আমি ২০২৩ সালে ChatGPT এর প্রবর্তনের পর থেকে সফটওয়্যার ডেভেলপমেন্টে জেনারেটিভ AI এর প্রভাব প্রত্যক্ষ করেছি। ব্যবহারিক প্রয়োগের মাধ্যমে, আমি উৎপাদনশীলতা বৃদ্ধির জন্য এই প্রযুক্তিকে কাজে লাগানোর পাঁচটি শক্তিশালী উপায় চিহ্নিত করেছি।

১. উন্নত কোড অনুসন্ধান

আমি জেনারেটিভ AI ব্যবহার করার সবচেয়ে ঘন ঘন উপায় হল প্রযুক্তিগত তথ্য অনুসন্ধান করা। ঐতিহ্যবাহী সার্চ ইঞ্জিনগুলির জন্য সুনির্দিষ্ট পরিভাষা প্রয়োজন, অন্যদিকে জেনারেটিভ AI ধারণা এবং প্রসঙ্গ বুঝতে পারে। উদাহরণস্বরূপ, মেথড প্যারামিটার অপ্টিমাইজেশনের নীতি অনুসন্ধান করার সময়, আমি জিজ্ঞাসা করি:

প্রম্পট

প্রোগ্রামিং ধারণার নাম কী যেখানে আপনার শুধুমাত্র সেই প্যারামিটারগুলি পাস করা উচিত যা আসলে মেথড দ্বারা ব্যবহৃত হয়? একটি মেথডে এমন প্যারামিটার পাস করা যা মেথড দ্বারা ব্যবহৃত হয় না তা অপ্রয়োজনীয় নির্ভরতা তৈরি করে।

জেনারেটিভ AI আমি যে ধারণাটি বর্ণনা করছি (Law of Demeter) তা বুঝতে পারে এবং সঠিক উত্তর প্রদান করে, একাধিক অনুসন্ধানের প্রয়োজনীয়তা দূর করে।

২. দক্ষ কোড জেনারেশন

জেনারেটিভ AI পুনরাবৃত্তিমূলক কোডিং কাজগুলি স্বয়ংক্রিয় করতে দক্ষ। সম্প্রতি, আমার একটি বড় JSON ফাইলকে ডেটাবেস ইনসার্ট স্টেটমেন্টে রূপান্তর করার প্রয়োজন ছিল। ক্লান্তিকর রূপান্তর কোড লেখার পরিবর্তে, আমি MS SQL Server ইনসার্ট স্টেটমেন্ট তৈরির জন্য স্পষ্ট নির্দেশনা সহ JSON ডেটা AI কে প্রদান করেছি। এই পদ্ধতি ঘন্টার পর ঘন্টা ম্যানুয়াল কোডিং সময় সাশ্রয় করেছে এবং ত্রুটির সম্ভাবনা কমিয়েছে।

প্রম্পট:

নিচে প্রদত্ত JSON ডেটা ব্যবহার করে dbo.Users টেবিলে ইনসার্ট করার জন্য MS SQL Server এর জন্য ইনসার্ট স্টেটমেন্ট তৈরি করুন।

[  
{  
"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');

৩. নিরবচ্ছিন্ন কোড অনুবাদ

কোড অনুবাদ আরেকটি ক্ষেত্র যেখানে জেনারেটিভ 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());
}

৪. স্বয়ংক্রিয় কোড ডকুমেন্টেশন

ডকুমেন্টেশন অপরিহার্য কিন্তু প্রায়ই ক্লান্তিকর। জেনারেটিভ AI এই প্রক্রিয়াটিকে দুটি উপায়ে সহজ করে:

১. কোড সংক্ষিপ্তকরণ: বিদ্যমান কোড বিশ্লেষণ করে এবং স্পষ্ট, সংক্ষিপ্ত সারসংক্ষেপ প্রদান করে

২. ডকুমেন্টেশন হেডার তৈরি: কোডের গুণমান মান বজায় রাখে এমন ব্যাপক মেথড ডকুমেন্টেশন তৈরি করে

উদাহরণস্বরূপ, সর্টিং অ্যালগরিদম বা জটিল ব্যবসায়িক লজিক ডকুমেন্ট করার সময়, AI টিম স্ট্যান্ডার্ড এবং সর্বোত্তম অনুশীলন অনুসরণ করে স্পষ্ট, নির্ভুল ডকুমেন্টেশন তৈরি করতে পারে।

প্রম্পট:

নিচের ফাংশনের জন্য একটি ডক হেডার তৈরি করুন এবং ডক হেডার সহ সম্পূর্ণ ফাংশনটি প্রিন্ট করুন।
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_):
    """
    বাবল সর্ট অ্যালগরিদম ব্যবহার করে একটি প্রদত্ত তালিকা সাজায়।

    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_

৫. অ্যাপ্লিকেশন স্ক্যাফোল্ডিং

সম্ভবত জেনারেটিভ 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 ব্যবহার করে একটি সম্পূর্ণ অ্যাপ্লিকেশন তৈরি করেছে।
...

আসুন জিজ্ঞাসা করি প্রাথমিক ডিজাইনের উন্নতির জন্য আমরা কী করতে পারি।

প্রম্পট ২:

এটি একটি দুর্দান্ত শুরু। অ্যাপ্লিকেশন ডিজাইনের উন্নতির জন্য আমরা কী করতে পারি?

আউটপুট:
ভাল ডিবাগিং এবং ত্রুটি হ্যান্ডলিংয়ের জন্য লগিং বাস্তবায়ন করুন।

logging.py (ঐচ্ছিক)

import logging

logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)

def log_error(error):
    logger.error(f"একটি ত্রুটি ঘটেছে: {error}")

প্রম্পট ৩:

আপনি ত্রুটি হ্যান্ডলিং ব্যবহার করার যে পরামর্শ দিয়েছেন তা বাস্তবায়ন করতে পারেন এবং আমার জন্য কোড তৈরি করতে পারেন?

আউটপুট:
আপনি যদি নির্দিষ্ট ব্যতিক্রমগুলি বিশ্বব্যাপী হ্যান্ডল করতে চান তবে আপনার 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 আধুনিক সফটওয়্যার ডেভেলপমেন্টে একটি অপরিহার্য টুল হয়ে উঠেছে। এই পাঁচটি পদ্ধতি - উন্নত অনুসন্ধান, কোড জেনারেশন, অনুবাদ, ডকুমেন্টেশন, এবং অ্যাপ্লিকেশন স্ক্যাফোল্ডিং - কাজে লাগিয়ে ডেভেলপাররা কোডের গুণমান বজায় রেখে তাদের উৎপাদনশীলতা উল্লেখযোগ্যভাবে বৃদ্ধি করতে পারেন।

মূল বিষয় হল এই টুলগুলির ক্ষমতা এবং সীমাবদ্ধতা বোঝা এবং মানুষের দক্ষতার প্রতিস্থাপনের পরিবর্তে উন্নত করার জন্য কৌশলগতভাবে ব্যবহার করা। এই প্রযুক্তিগুলির বিকাশের সাথে সাথে, ডেভেলপমেন্ট ওয়ার্কফ্লোতে তাদের একীকরণ ক্রমবর্ধমান মূল্যবান হয়ে উঠবে।

লেখক: চাক কনওয়ে সফটওয়্যার ইঞ্জিনিয়ারিং এবং জেনারেটিভ এআই-তে বিশেষজ্ঞ। তার সাথে সোশ্যাল মিডিয়ায় যোগাযোগ করুন: X (@chuckconway) অথবা তাকে YouTube-এ দেখুন।

↑ উপরে ফিরে যান

আপনি এগুলোও পছন্দ করতে পারেন