নিরাপদে ও কার্যকরভাবে কোডিংয়ে AI ব্যবহারের উপায়

AI-কে একজন সহকর্মীর মতো ব্রিফ দিন, তারপর পর্যালোচকের মতো যাচাই করুন। ডিবাগিং, নতুন কোড, টেস্ট ও রিভিউয়ের প্রম্পটসহ নানা টিপস।

6 মিনিটে পড়ুনআপডেট করা হয়েছে

Glass blocks connected by glowing lines with small gears

প্রোগ্রামিংয়ের ক্ষেত্রে AI চ্যাট সত্যিই কার্যকর: অপরিচিত কোড বোঝা, কোনো এররের কারণ বের করা, বয়লারপ্লেট লেখা, টেস্টের খসড়া তৈরি এবং নতুন কোনো ভাষা বা লাইব্রেরি শেখার জন্য। তবে এটি প্রায়ই আত্মবিশ্বাসের সাথে ভুল তথ্যও দেয়, তাই প্রতিটি উত্তরকে একজন দ্রুতগতির কিন্তু অসতর্ক সহকর্মীর পাঠানো পুল রিকোয়েস্ট (PR) হিসেবে বিবেচনা করা উচিত। এই গাইডে দেখানো হয়েছে কীভাবে সঠিকভাবে প্রম্পট দিতে হয় এবং প্রাপ্ত ফলাফল কীভাবে যাচাই করতে হয়।

কোডিংয়ের ক্ষেত্রে AI চ্যাট যেসব কাজে সেরা

  • কোড ব্যাখ্যা করা: "আমাকে এই ফাংশনটি লাইন ধরে ধরে বুঝিয়ে দাও।"
  • ডিবাগিং: কোনো এরর মেসেজ ও স্ট্যাক ট্রেস পড়ে সম্ভাব্য কারণগুলো খুঁজে বের করা।
  • ছোট ও সুনির্দিষ্ট ফাংশন: তারিখ পার্স করা, ইনপুট যাচাই করা, ডেটা রূপান্তর করা।
  • বয়লারপ্লেট কোড: কনফিগ ফাইল, কমান্ড-লাইন আর্গুমেন্ট পার্সিং, সাধারণ API হ্যান্ডলার।
  • টেস্ট: ইউনিট টেস্ট তৈরি করা, এমনকি ভুলে যাওয়া এজ কেসগুলোও অন্তর্ভুক্ত করা।
  • Regex, SQL এবং শেল ওয়ান-লাইনার, প্রতিটি অংশের ব্যাখ্যাসহ।
  • নতুন কিছু শেখা: "আমি Python জানি; এটি Go-তে কেমন দেখাবে এবং পার্থক্যগুলো বুঝিয়ে দাও।"
  • কোড রিভিউ: পড়ার জটিলতা, বাদ পড়া এরর হ্যান্ডলিং এবং স্পষ্ট নিরাপত্তা ত্রুটিগুলো চিহ্নিত করা।

তবে এটি আপনার পুরো কোডবেসের ওপর নির্ভরশীল বড় কোনো ডিজাইন সিদ্ধান্ত নেওয়া, নতুন লাইব্রেরি ভার্সন যা সম্পর্কে এটি জানে না এবং যা এটি দেখতে পারে না—এমন বিষয়ে দুর্বল। ChatG-এর মতো চ্যাটে, AI কেবল সেটাই দেখতে পায় যা আপনি পেস্ট করেন। এটি আপনার ফাইল খুলতে বা কোড রান করতে পারে না।

বাগ ফিক্স করার জন্য যেভাবে প্রম্পট লিখবেন

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

দুর্বল:
আমার কোড কাজ করছে না, ঠিক করে দাও।
[২০০ লাইন পেস্ট করা হলো]
শক্তিশালী:
Python 3.12, pandas 2.x। এই ফাংশনটির প্রতি গ্রাহকের গড় অর্ডার ভ্যালু
রিটার্ন করার কথা, কিন্তু এটি KeyError: 'customer_id' দেখাচ্ছে।

কোড:
[শুধুমাত্র ফাংশনটি এবং ডেটার ৫টি সারির নমুনা পেস্ট করুন]

সম্পূর্ণ ট্রেসব্যাক:
[পেস্ট করুন]

আমি চেক করেছি যে CSV ফাইলটিতে customer_id কলাম রয়েছে। সম্ভাব্য কারণগুলো কী কী?
সংশোধিত কোড দেখানোর আগে সমস্যাটির সমাধান বুঝিয়ে দাও।

আপনার কোডটিকে ছোট করে ঠিক ততটুকু রাখুন যা সমস্যাটি দেখাতে প্রয়োজন। এটি অনেক সময় আপনা থেকেই বাগ ধরিয়ে দেয় এবং গুরুত্বপূর্ণ লাইনগুলোতে মনোযোগ বজায় রাখে। আপনি চ্যাটে একটি ডিবাগিং প্রম্পট খুলতে পারেন এবং প্রয়োজনীয় তথ্য পূরণ করতে পারেন।

নতুন কোড চেয়ে যেভাবে প্রম্পট লিখবেন

একটি সংক্ষিপ্ত স্পেসিফিকেশন লিখুন। ইনপুট, আউটপুট এবং এজ কেসগুলো যত নিখুঁতভাবে বর্ণনা করবেন, পরে তত কম ঠিকঠাক করতে হবে।

একটি TypeScript ফাংশন slugify(title: string): string লিখুন।
- ছোট হাতের অক্ষর, কেবল ASCII; সাধারণ অ্যাকসেন্টযুক্ত অক্ষরগুলো রূপান্তর করুন
  (যেমন, é হয়ে যাবে e)।
- যেকোনো নন-আলফানিউমেরিক অক্ষরের সিরিজকে একটিমাত্র হাইফেন দিয়ে প্রতিস্থাপন করুন।
- উভয় প্রান্ত থেকে হাইফেন ট্রিম করুন; সর্বোচ্চ দৈর্ঘ্য ৬০, শব্দের মাঝখানে কাটবেন না।
- কোনো এক্সটার্নাল লাইব্রেরি ব্যবহার করবেন না।
এরপর Vitest দিয়ে ৮টি ইউনিট টেস্ট লিখুন, যার মধ্যে খালি স্ট্রিং এবং
ইমোজিযুক্ত ইনপুট অন্তর্ভুক্ত থাকবে।

কোডের সাথেই টেস্ট চেয়ে নিন। AI-এর টেস্ট ও কোডের ফলাফলে অমিল থাকলে প্রোডাকশনে যাওয়ার আগেই সমস্যা ধরা পড়বে।

আপনি কী চান না, তাও স্পষ্ট করে বলে দিন: "নতুন কোনো ডিপেনডেন্সি নয়", "আগের ফাংশন সিগনেচার ঠিক রাখুন", "শুধুমাত্র স্ট্যান্ডার্ড লাইব্রেরি", "এই ফাংশনের বাইরে কিছু পরিবর্তন করবেন না"। সীমা নির্ধারণ না করে দিলে AI প্রয়োজনের চেয়ে বেশি পরিবর্তন করে ফেলে।

কোড ডিপ্লয় বা ব্যবহারের আগে সবকিছু যাচাই করুন

AI-এর লেখা কোড দেখতে নিখুঁত লাগলেও তাতে ভুল থাকতে পারে। এই যাচাইগুলো আপনার অভ্যাসে পরিণত করুন:

  1. এটি রান করে দেখুন। নিজে কোড ও এর টেস্ট রান না করে কখনোই কোনো প্রজেক্টে যুক্ত করবেন না।
  2. প্রতিটি ফাংশন ও অপশন সত্যিই আছে কি না পরীক্ষা করুন। AI কখনো কখনো অস্তিত্বহীন মেথড, প্যারামিটার বা কনফিগ কি (key) বানিয়ে নেয়, অথবা পুরোনো ভার্সন ব্যবহার করে। আপনি যে ভার্সন ব্যবহার করছেন, তার অফিশিয়াল ডকুমেন্টেশনে মিলিয়ে নিন।
  3. ইন্সটল করার আগে প্রতিটি প্যাকেজের নাম যাচাই করুন। সিকিউরিটি গবেষকরা দেখেছেন যে AI এমন প্যাকেজের সুপারিশ করে যার কোনো অস্তিত্ব নেই, এবং আক্রমণকারীরা ক্ষতিকর কোড দিয়ে সেই নামের প্যাকেজ রেজিস্টার করে রাখতে পারে (যা "slopsquatting" নামে পরিচিত)। ইন্সটল করার আগে অফিশিয়াল রেজিস্ট্রি থেকে নিশ্চিত হন যে প্যাকেজটি আসল এবং মেইনটেইন করা হচ্ছে।
  4. নিরাপত্তা রিভিউ করুন। স্ট্রিং কনক্যাটেনেশন দিয়ে তৈরি SQL, মিসিং ইনপুট ভ্যালিডেশন, বন্ধ থাকা সার্টিফিকেট চেক, কোডের ভেতর গোপন তথ্য এবং অতিরিক্ত পারমিশন আছে কি না খেয়াল করুন। AI-কে সরাসরি জিজ্ঞাসা করুন: "প্রতিটি ইনপুট ক্ষতিকর ধরে নিয়ে নিরাপত্তার ত্রুটিগুলোর জন্য এটি রিভিউ করে দাও।"
  5. পুরোপুরি না বোঝা পর্যন্ত পড়ুন। কোনো কোড ব্লক কীভাবে কাজ করে তা ব্যাখ্যা করতে না পারলে চ্যাটে জিজ্ঞেস করুন, অথবা তা মার্জ করবেন না। কারণ এর রক্ষণাবেক্ষণের দায়িত্ব শেষ পর্যন্ত আপনারই।

চ্যাটে গোপন তথ্য ও ব্যক্তিগত কোড দেওয়া থেকে বিরত থাকুন

কখনোই কোনো AI চ্যাটে API কি, পাসওয়ার্ড, টোকেন, প্রাইভেট কি বা ডেটাবেস কানেকশন স্ট্রিং পেস্ট করবেন না। এগুলোর জায়গায় YOUR_API_KEY-এর মতো প্লেসহোল্ডার ব্যবহার করুন। ভুলবশত কোনো রিয়েল সিক্রেট বাইরের কোথাও প্রকাশ হয়ে পড়লে দ্রুত তা পরিবর্তন (rotate) করুন।

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

ডেভেলপারদের জন্য কার্যকর কিছু প্রম্পট

এমন একজন ডেভেলপারের জন্য এই কোডটি ব্যাখ্যা করুন যিনি [ভাষা] জানেন কিন্তু এই
লাইব্রেরিটি জানেন না। ব্লক ধরে ধরে ব্যাখ্যা করুন, তারপর ঝুঁকিপূর্ণ বা
পুরোনো মনে হওয়া বিষয়গুলোর তালিকা দিন।
[কোড পেস্ট করুন]
একজন সিনিয়র ইঞ্জিনিয়ারের মতো এই diff রিভিউ করুন। আপনার মন্তব্যগুলোকে বাগ,
নিরাপত্তা, পারফরম্যান্স ও রিডিবিলিটি অনুযায়ী সাজান। সুনির্দিষ্টভাবে বলুন এবং
প্রাসঙ্গিক লাইনগুলো উল্লেখ করুন।
[diff পেস্ট করুন]
একটি রেগুলার এক্সপ্রেশন লিখুন যা [বিবরণ] মেলে। প্রতিটি অংশ বুঝিয়ে দিন,
তারপর ৫টি স্ট্রিং দিন যা মিলবে এবং ৫টি স্ট্রিং দিন যা মিলবে না।
আমি Python ভালো জানি এবং Rust শিখছি। Rust-এ কীভাবে [কাজ] করতে হয় তা দেখান,
এবং ওনারশিপ ও বরোয়িং এমনভাবে বুঝিয়ে দিন যেন আমি এটি আগে কখনো দেখিনি।

আমাদের কোডিং প্রম্পট সংগ্রহে আরও অনেক উদাহরণ রয়েছে। দ্রুত ছোটখাটো কাজের জন্য, কোড অ্যাসিস্ট্যান্ট টুলটি বিবরণ বা স্নিপেট নিয়ে ব্যাখ্যাসহ কোড দেয়, এবং বিল্ট-ইন কোডিং অ্যাসিস্ট্যান্ট পুরো কথোপকথন জুড়ে ডেভেলপার-বান্ধব স্টাইল বজায় রাখে।

সাধারণ ভুলসমূহ

  • পুরো প্রজেক্ট পেস্ট করা। বড় টেক্সট পেস্ট করলে আসল সমস্যা হারিয়ে যায় এবং AI-এর প্রসেসিং সীমার বাইরে চলে যেতে পারে। কেবল প্রাসঙ্গিক ফাইল বা ফাংশনগুলো পাঠান।
  • সমস্যা আড়াল করে এমন সমাধান মেনে নেওয়া। সবকিছু try/except ব্লকে আটকে দিলে এরর মেসেজ গায়েব হয়ে যায়, বাগ দূর হয় না। এররটি কেন ঘটছে তা জানুন।
  • একই জায়গায় ঘুরপাক খাওয়া। দুই-তিনবারের চেষ্টায় কাজ না হলে থামুন এবং কৌশল বদলান: আরও কনটেক্সট দিন, ছোট উদাহরণ ব্যবহার করুন, অথবা সমস্যার স্পষ্ট সারসংক্ষেপ দিয়ে নতুন চ্যাট শুরু করুন।
  • ভার্সন উল্লেখ না করা। ফ্রেমওয়ার্কের বড় ভার্সন পরিবর্তনে API বদলে যায়, তাই আপনি কোনটি ব্যবহার করছেন তা উল্লেখ করুন।
  • লাইসেন্স উপেক্ষা করা। AI যদি অন্য কারও কোডের চেনা কোনো অংশ তৈরি করে, তবে ব্যবহারের আগে তার লাইসেন্স যাচাই করুন।

আরও দেখুন ডেভেলপাররা কীভাবে ChatG ব্যবহার করেন এবং সাধারণ প্রম্পট লেখার গাইড।

কাজের একটি কার্যকর পদ্ধতি যা নিয়ন্ত্রণ আপনার হাতে রাখবে

  1. কোড ছাড়াই প্রথমে মূল লক্ষ্য বর্ণনা করুন। কোনো কোড লেখার আগে দুই বা তিনটি সম্ভাব্য পদ্ধতি এবং সেগুলোর সুবিধা-অসুবিধা জানতে চান।
  2. একটি পদ্ধতি বেছে নিন এবং ছোট একটি অংশ চাইতে শুরু করুন। পুরো ফিচারের চেয়ে একবারে একটি ফাংশন বা ফাইল যাচাই করা অনেক সহজ।
  3. কোডটি রান করুন এবং ফলাফল জানান। "কাজ করছে না" না বলে বাস্তব আউটপুট বা এরর পেস্ট করুন।
  4. টেস্ট ও রিভিউ চান। "এতে কোন কোন এজ কেস বাদ পড়েছে?"—এই প্রশ্নটি প্রায়ই পরবর্তী বাগ খুঁজে পেতে সাহায্য করে।
  5. কমিট মেসেজ নিজে লিখুন। কী পরিবর্তন হয়েছে এবং কেন হয়েছে তা যদি সংক্ষেপে লিখতে না পারেন, তবে পরিবর্তনটি আপনি এখনও পুরোপুরি বোঝেননি।

FAQ

AI কি কোডিং শেখার বিকল্প হতে পারে?

না। যারা কোড পড়তে এবং যাচাই করতে পারেন, এটি কেবল তাদের গতি বাড়িয়ে দেয়। কোনো উত্তর সঠিক কি না তা যদি বুঝতেই না পারেন, তবে এটি নিরাপদে ব্যবহার করা অসম্ভব। দ্রুত শেখার জন্য AI ব্যবহার করুন: শুধু কী হয়েছে তা না জেনে, কেন হয়েছে তা জানুন।

এটি কোন কোন প্রোগ্রামিং ভাষায় দক্ষ?

AI চ্যাট সাধারণত বহুল ব্যবহৃত ভাষাগুলো যেমন Python, JavaScript, TypeScript, Java, C#, C++, Go, PHP, SQL এবং শেল স্ক্রিপ্টিং ভালো বোঝে; তুলনামূলক কম পরিচিত ভাষায় এর নির্ভরযোগ্যতা কিছুটা কম। এছাড়া খুব নতুন লাইব্রেরি ও ভার্সনের ক্ষেত্রেও আউটপুটের মান কমে যায়।

ChatG কি আমার কোড রান করতে বা রিপোজিটরি দেখতে পারে?

না। ChatG একটি চ্যাট ইন্টারফেস: আপনি যা পেস্ট করবেন এটি কেবল সেটাই দেখতে পায়, এবং এটি কোড এক্সিকিউট করতে পারে না। আপনার নিজস্ব এনভায়রনমেন্টেই সবকিছু রান এবং টেস্ট করুন।

বাণিজ্যিক কাজে AI-এর তৈরি কোড ব্যবহার করা কি নিরাপদ?

যেকোনো বাইরের সোর্স থেকে পাওয়া কোডের মতোই এটি বিবেচনা করুন: রিভিউ করুন, টেস্ট করুন, ব্যবহৃত ডিপেনডেন্সি ও কপি করা কোডের লাইসেন্স যাচাই করুন এবং আপনার প্রতিষ্ঠানের নীতিমালা মেনে চলুন। এটি কেবল সাধারণ তথ্য, কোনো আইনি পরামর্শ নয়।

শুরু করতে প্রস্তুত?

চ্যাট খুলুন এবং আপনার প্রথম প্রশ্নটি করুন। এটি সম্পূর্ণ ফ্রি, এবং কোনো কিছু ইনস্টল করতে হয় না।

চ্যাট শুরু করুন