Skip to content

পোস্ট

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

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

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

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

১. উন্নত কোড সার্চ

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

প্রম্পট

What's the name of the programming concept where you should only pass parameters that are actually used by the method? Passing parameters to a method that aren't used by the method creates unneeded dependencies. 

জেনারেটিভ এআই আমি যে ধারণা বর্ণনা করছি তা বোঝে (ল অফ ডেমিটার) এবং সঠিক উত্তর প্রদান করে, একাধিক সার্চের প্রয়োজনীয়তা দূর করে।

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

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

প্রম্পট:

Use the JSON data provided below and generate insert statements for MS SQL Server to be inserted into the dbo.Users table.

[  
{  
"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"  
}  
]

আউটপুট:


-- Inserting records into dbo.Users table

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');

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

কোড অনুবাদ আরেকটি ক্ষেত্র যেখানে জেনারেটিভ এআই অমূল্য প্রমাণিত হয়। একটি সি# অ্যাপ্লিকেশনকে পাইথনে রূপান্তরিত করার সম্প্রতি একটি প্রকল্পে, আমরা দুটি গুরুত্বপূর্ণ উপায়ে এআই ব্যবহার করেছি:

১. পাইথন থেকে সি#-এ সরাসরি ফাংশন রূপান্তর

২. এন্টিটি ফ্রেমওয়ার্ক থেকে এসকিউএলঅ্যালকেমিতে জটিল ওআরএম অনুবাদ

এই ক্ষমতা আমাদের মাইগ্রেশন প্রক্রিয়া উল্লেখযোগ্যভাবে ত্বরান্বিত করেছে এবং অনুবাদ জুড়ে সামঞ্জস্য নিশ্চিত করেছে।

পাইথনকে সি#-এ রূপান্তরিত করা:

প্রম্পট:

Convert the following Python code to C#.
def reverse_string(text): 
"""
Reverses a given string. 
	Args: text: The string to be reversed. 

Returns: The reversed string.

""" 
return text[::-1]

আউটপুট:

/// <summary>
/// Reverses a given string.
/// </summary>
/// <param name="text">The string to be reversed.</param>
/// <returns>The reversed string.</returns>
public static string ReverseString(string text)
{
	return new string(text.Reverse().ToArray());
}

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

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

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

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

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

প্রম্পট:

Generate a doc header for the below function adding the header and printing the complete function with the doc header.
def bubble_sort(list_):
  n = len(list_) 
  for i in range(n):
    # Flag to optimize, if no swaps occur, the list is sorted
    swapped = False
    # Last i elements are already in place
    for j in range(0, n-i-1):
      # Swap if the element found is greater than the next element
      if list_[j] > list_[j+1]:
        list_[j], list_[j+1] = list_[j+1], list_[j]
        swapped = True
    # If no two elements were swapped in inner loop, the list is sorted
    if not swapped:
      break
  return list_

আউটপুট:

def bubble_sort(list_):
    """
    Sorts a given list using the Bubble Sort algorithm.

    Args:
        list_: The list of elements to be sorted. Elements must be comparable.

    Returns:
        A new list containing all elements from the original list in ascending order.
        
    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):
        # Flag to optimize, if no swaps occur, the list is sorted
        swapped = False
        # Last i elements are already in place
        for j in range(0, n-i-1):
            # Swap if the element found is greater than the next element
            if list_[j] > list_[j+1]:
                list_[j], list_[j+1] = list_[j+1], list_[j]
                swapped = True
        # If no two elements were swapped in inner loop, the list is sorted
        if not swapped:
            break
    return list_

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

সম্ভবত জেনারেটিভ এআইর সবচেয়ে চিত্তাকর্ষক প্রয়োগ হল প্রাথমিক অ্যাপ্লিকেশন কাঠামো তৈরি করার ক্ষমতা। একটি স্পষ্ট স্কিমা বা স্পেসিফিকেশন দেওয়া, এআই তৈরি করতে পারে:

  • ডাটাবেস তৈরির স্ক্রিপ্ট

  • ওআরএম ম্যাপিং

  • মৌলিক এপিআই এন্ডপয়েন্ট

  • প্রাথমিক ইউআই বাস্তবায়ন

এই ক্ষমতা বয়লারপ্লেট কোডে ব্যয় করা সময় উল্লেখযোগ্যভাবে হ্রাস করে এবং আরও উন্নয়নের জন্য একটি সামঞ্জস্যপূর্ণ ভিত্তি নিশ্চিত করে।

প্রম্পট:

You are a Software Engineer working at a large corporation. Using the following database schema, generate the SQL scripts necessary to create these tables in Postgres. Then, generate the SQL Alchemy mapping files to use with FastAPI. Lastly, generate a simple web UI using FastAPI to list the orders.
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

আউটপুট:

...
I'm saving you from the output, but it generated an entire application using FastAPI.
...

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

প্রম্পট ২:

That's a great start. What can we do to improve the application design?

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

logging.py (ঐচ্ছিক)

import logging

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

def log_error(error):
    logger.error(f"An error occurred: {error}")

প্রম্পট ৩:

Can you implement your suggestion to use Error Handling and generate the code for me?

আউটপুট:
আপনি আপনার 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()

# Include the router
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},
    )

সেরা অনুশীলন এবং বিবেচনা

যদিও জেনারেটিভ এআই শক্তিশালী, এটি গুরুত্বপূর্ণ যে:

  • উৎপন্ন কোড পর্যালোচনা এবং যাচাই করুন
  • বিদ্যমান কোডবেসের সাথে সামঞ্জস্য বজায় রাখুন
  • নিরাপত্তা প্রভাব বিবেচনা করুন
  • উৎপন্ন কোড পুঙ্খানুপুঙ্খভাবে পরীক্ষা করুন
  • এআইকে প্রকৌশল বিচারের প্রতিস্থাপন হিসাবে নয় বরং সহায়ক হিসাবে ব্যবহার করুন

উপসংহার

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

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

লেখক: চাক কনওয়ে একজন এআই ইঞ্জিনিয়ার যার কাছে প্রায় ৩০ বছরের সফটওয়্যার ইঞ্জিনিয়ারিং অভিজ্ঞতা রয়েছে। তিনি ব্যবহারিক এআই সিস্টেম তৈরি করেন—কন্টেন্ট পাইপলাইন, অবকাঠামো এজেন্ট এবং সরঞ্জাম যা বাস্তব সমস্যার সমাধান করে—এবং তার শেখার বিষয়গুলি শেয়ার করেন। তার সাথে সোশ্যাল মিডিয়ায় সংযোগ করুন: X (@chuckconway) অথবা তাকে YouTube এবং SubStack এ দেখুন।

↑ শীর্ষে ফিরে যান

আপনি এটিও পছন্দ করতে পারেন