লাভ:
- স্পষ্ট ইনপুট-আউটপুট এবং সীমাবদ্ধতার সংজ্ঞা সহ AI-তে ফাংশন, ক্লাস এবং মডিউল লেখার ক্ষমতা
- একটি জোড়া প্রোগ্রামিং অংশীদার হিসাবে AI ব্যবহার করার ক্ষমতা এবং ধাপে ধাপে, ছোট, যাচাইযোগ্য অংশে অগ্রগতি
- এআই দ্বারা উত্পন্ন কোড কম্পাইল করে এবং ছোট উদাহরণ দিয়ে চালানোর মাধ্যমে যুক্তি এবং প্রান্তের ক্ষেত্রে ত্রুটি ধরার ক্ষমতা
পেয়ার প্রোগ্রামিং হল যখন দুই ডেভেলপার একই সমস্যা নিয়ে কাজ করে, একটি লেখার সাথে অন্যটি সংশোধন করে। এআই-এর সাথে কোডিং হল এই সম্পর্কের ডিজিটাল সংস্করণ: আপনি দিকনির্দেশ, সীমাবদ্ধতা এবং গ্রহণযোগ্যতার মানদণ্ড নির্ধারণ করেন; এআই দ্রুত খসড়া তৈরি করে; আপনি কম্পাইল এবং পরীক্ষা করে প্রতিটি ধাপ যাচাই করুন। এখানে সবচেয়ে বড় ফাঁদ হল AI কে বলা "শুরু থেকে শেষ পর্যন্ত আমাকে এই অ্যাপ্লিকেশনটি লিখুন" এবং 200-লাইন ব্লক অন্ধভাবে গ্রহণ করুন। ভাল জোড়া প্রোগ্রামিং ছোট ধাপে এগিয়ে যায়: প্রতিটি পদক্ষেপ বোধগম্য, পরীক্ষাযোগ্য এবং বিপরীত হওয়া উচিত।
এই ইউনিটে আপনি শিখবেন কিভাবে একটি পরিষ্কার ইনপুট-আউটপুট চুক্তি সহ ফাংশন, ক্লাস এবং মডিউল প্রিন্ট করতে হয়; কীভাবে এআইকে ধাপে ধাপে গাইড করবেন; এবং আমরা দেখব কিভাবে লজিক এবং এজ কেস এরর ধরতে হয় ছোট ছোট উদাহরণ সহ যে কোডটি তৈরি করে তা চালিয়ে। লক্ষ্য গতি নয়, কিন্তু যাচাই করা গতি।
ধারণা: ইনপুট-আউটপুট চুক্তি: একটি ফাংশন কী ইনপুট নেয় এবং এটি কী আউটপুট এবং ত্রুটি আচরণের প্রতিশ্রুতি দেয় তার একটি স্পষ্ট সংজ্ঞা। এজ কেস: ইনপুট যা সাধারণ নয় কিন্তু আসলে ঘটতে পারে (খালি, শূন্য, নেতিবাচক, খুব বড়, শূন্য)। ক্রমবর্ধমান উন্নয়ন: ছোট, কাজের টুকরো নিয়ে এগিয়ে যাওয়া এবং প্রতিটি ধাপকে যাচাই করা।
নেট চুক্তির সাথে প্রিন্টিং কোড
কোয়ালিটি কোডের ভিত্তি হল কাজ শুরু করার আগে ঠিক "আপনি কি চান" সংজ্ঞায়িত করা। AI-তে একটি ফাংশন লেখার সময়, এটিকে পাঁচটি জিনিস দিন: ভাষা এবং সংস্করণ, ইনপুট প্রকার এবং অর্থ, আউটপুট, ত্রুটির শর্ত এবং সীমাবদ্ধতা (কর্মক্ষমতা, বহিরাগত লাইব্রেরি নিষেধাজ্ঞা, শৈলী)। এটি এআইকে অনুমান করা থেকে বাধা দেয়।
- চুক্তি লিখুন। ইনপুট, আউটপুট, ত্রুটি, সীমাবদ্ধতা।
- একটি ছোট ইউনিট জন্য জিজ্ঞাসা করুন. একক দায়িত্ব সহ একটি ফাংশন; এটি একটি বিশাল মডিউল নয়।
- একটি পরীক্ষা ব্লক অনুরোধ. কোডের পাশে কয়েকটি নমুনা রান/পরীক্ষা যোগ করুন।
- কম্পাইল এবং রান. প্রান্তের ক্ষেত্রে এটি চেষ্টা করুন, চোখের দ্বারা আউটপুট যাচাই করুন।
- পরবর্তী ধাপে যান। একবার একটি টুকরা নিশ্চিত হয়ে গেলে, এটি তৈরি করুন।
চুক্তিবদ্ধ ফাংশন প্রম্পট: "TypeScript 5 এর জন্য একটি ফাংশন লিখুন। উদ্দেশ্য: একটি শপিং কার্টে আইটেমের মোট পরিমাণ গণনা করুন। ইনপুট: { মূল্য: সংখ্যা, পরিমাণ: সংখ্যা [] অ্যারে। আউটপুট: সংখ্যা (মোট)। নিয়ম: পরিমাণ বা মূল্য ঋণাত্মক হলে ত্রুটি নিক্ষেপ করুন; empci স্থানের জন্য শূন্য পরিমাণের জন্য 0 রিটার্ন করুন। বাহ্যিক লাইব্রেরি ব্যবহার করবেন না ফাংশনের নীচে 5টি টেস্ট কেস (সাধারণ, খালি, নেতিবাচক পরিমাণ, দশমিক মূল্য, একক আইটেম)৷"
একটি জুটি হিসাবে AI গাইডিং
পেয়ার প্রোগ্রামিংয়ে ভাল অগ্রগতি একটি বড় অনুরোধের পরিবর্তে একটি সংলাপ। প্রথম, কঙ্কাল অনুরোধ এবং এটি চালানো; তারপর একটি প্রান্ত রাষ্ট্র যোগ করুন; তারপর একটি বাগ সংশোধন করুন. এই পদ্ধতিটি কোডটিকে বোধগম্য রাখে এবং প্রতিটি পদক্ষেপে আপনাকে নিয়ন্ত্রণে রাখে।
ক্রমবর্ধমান অগ্রগতি প্রম্পট: "আমরা একটি পাঠক লিখব যেটি একটি CSV ফাইল পড়ে এবং লাইনগুলিকে একটি অবজেক্টে রূপান্তর করে। আসুন প্রতিটি ধাপ নিশ্চিত না করেই ধাপে ধাপে ধাপে এগিয়ে যাই। ধাপ 1: শুধু সেই কঙ্কালটি লিখুন যা ফাইলটিকে লাইনে বিভক্ত করে এবং শিরোনাম লাইনকে আলাদা করে। এটি এখনও সংক্ষিপ্ত রূপান্তর টাইপ করুন বা হাত দিয়ে ব্যাখ্যা করুন।"
কোড প্রম্পট ব্যাখ্যা করুন এবং ন্যায্যতা দিন: "আপনি যে ফাংশনটি লিখেছেন তা ব্যাখ্যা করুন, লাইন দ্বারা লাইন নয়, তবে সিদ্ধান্তের ভিত্তিতে সিদ্ধান্ত নিন: আপনি কোন ডিজাইনের সিদ্ধান্ত নিয়েছেন এবং কেন, কোন প্রান্তের ক্ষেত্রে আপনি পরিচালনা করেছেন এবং কীভাবে, কোন ক্ষেত্রে আপনি ইচ্ছাকৃতভাবে বাদ দিয়েছেন? কোডে 3টি অনুমান তালিকাভুক্ত করুন যা আমার মিস করা উচিত নয়।"
টিপ: এআই-জেনারেটেড কোড না বুঝে গ্রহণ করবেন না। "এটি আমাকে ব্যাখ্যা করুন, আপনি কি অনুমান করেছেন?" প্রশ্নটি উভয়ই লুকানো ত্রুটিগুলি প্রকাশ করে এবং আপনাকে সেই কোডটি রক্ষা করার অনুমতি দেয়, যেহেতু কোডটি আপনার দায়িত্ব থেকে যায়৷ প্রোডাকশনে যে কোডটি আপনি বোঝেন না সেটি রাখা মানে স্বাক্ষর না করেই একটি চুক্তি পাঠানোর মতো।
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
WEAK:"একটি বাছাই ফাংশন লিখুন।"(ফলাফল: কোন ভাষা, কী সাজানো হচ্ছে, এটি কি স্থিতিশীল, কার্যক্ষমতার সীমাবদ্ধতা কী, কোড যা অস্পষ্ট এবং সম্ভবত প্রয়োজনের সাথে খাপ খায় না।)STRONG:"জাভা 17-এর জন্য, এমন একটি পদ্ধতি লিখুন যা একটি তালিকা<employee> অবজেক্টকে প্রথমে বিভাগ অনুসারে সাজায় (বর্ণানুক্রমিক তারপরে NPLACE), তারপরে REDOC-এর ক্রমানুসারে)। তালিকায়, নাল ডিপার্টমেন্টটি শেষ করতে দিন।
শক্তিশালী প্রম্পট; বাছাই মানদণ্ড (দুই-স্তর), পার্শ্ব প্রতিক্রিয়া নিয়ম (মূল প্রতিস্থাপন), শূন্য আচরণ এবং পরীক্ষার প্রত্যাশা অন্তর্ভুক্ত করে। এই বিবরণ ছাড়া, AI একটি যুক্তিযুক্ত কিন্তু ভুল সমাধান তৈরি করে; উদাহরণস্বরূপ এটি মূল তালিকাকে দূষিত করতে পারে এবং এটি অন্য কোথাও একটি নীরব ত্রুটির দিকে নিয়ে যাবে।
এজ কেস এবং ছোট নমুনা সহ বৈধতা
যে কোডটি সুখী দৃশ্যে কাজ করে সেটি সঠিক কোড নয়। সচেতনভাবে উত্পাদিত প্রতিটি ফাংশন জোর করুন:
এজ কেস টাইপ
নমুনা ইনপুট
প্রত্যাশিত আচরণ
ফাঁকা ইনপুট
খালি অ্যারে/স্ট্রিং
একটি ত্রুটি নয়, লজিক্যাল খালি ফলাফল
শূন্য/নেতিবাচক
0, -1
সংজ্ঞায়িত এবং সঠিক আচরণ
মহান মান
লক্ষ লক্ষ রেকর্ড
ওভারফ্লো/কর্মক্ষমতা নিয়ন্ত্রণ
নাল/অনির্ধারিত
অনুপস্থিত স্থান
নিয়ন্ত্রিত ত্রুটি বা ডিফল্ট
ডুপ্লিকেট/অস্বাভাবিক
পুনরাবৃত্তিমূলক, বিপরীত ক্রম
সঠিক ফলাফল
মিনি কেস
কেস 1 — নীরব রাউন্ডিং ত্রুটি। AI একটি ফাংশন লেখে যা দশমিক (ফ্লোট) প্রকারের সাথে অর্থ সংগ্রহ করে; 0.1 + 0.2 0.30000000000000004 দেয়। প্রকৌশলী "2 সংখ্যায় রাউন্ড এবং পুরো পেনিস ব্যবহার করুন" নিয়মটি যোগ করলে ত্রুটিটি সমাধান করা হয়। একটি 3-লাইন নিয়ম মাসিক মিলনে হাজার হাজার পেনিস বৈচিত্র্য প্রতিরোধ করে।
কেস 2 - পার্শ্ব প্রতিক্রিয়া ফাঁদ। এআই এমন একটি পদ্ধতি লেখে যা একটি তালিকাকে "বাছাই" করে, তবে মূল তালিকাটিকে জায়গায় পরিবর্তন করে। অপ্রত্যাশিত আচরণ ঘটে কারণ অন্য মডিউল একই তালিকা ব্যবহার করে। যদি "মূল পরিবর্তন" সীমাবদ্ধতা প্রম্পটে থাকে, তাহলে ত্রুটিটি ঘটবে না; কোড পর্যালোচনায় ধরা পড়ে এবং 2 ঘন্টা ডিবাগিং প্রতিরোধ করে।
কেস 3 - ধাপে ধাপে উপার্জন। একজন বিকাশকারী একবারে একটি 150-লাইন আমদানি মডিউল প্রিন্ট করে; যখন সে একটি ভুল খুঁজে পায়, তখন সে কোথা থেকে এসেছে তা খুঁজে পায় না। অন্য একজন ডেভেলপার একই কাজকে 5টি ছোট ধাপে ভাগ করে, 2 মিনিটের মধ্যে প্রতিটি ধাপ পরীক্ষা করে এবং 3য় ধাপে অবিলম্বে ত্রুটিটি ধরা দেয়।
সাধারণ ভুল
- এক অনুরোধে বড় ব্লক প্রিন্ট করা হচ্ছে। ঝুঁকিপূর্ণ কোড যা বোঝা কঠিন এবং ডিবাগ জন্ম হয়।
- কন্ট্রাক্ট না দিয়েই কোড চাচ্ছে। ইনপুট-আউটপুট-ত্রুটি অস্পষ্ট হলে, AI অনুমান করবে এবং ভুল হবে।
- শুধু সুখী দৃশ্যকল্প পরীক্ষা. যদি খালি, শূন্য, নেতিবাচক এবং বড় ইনপুট চেষ্টা না করা হয়, ত্রুটিটি উৎপাদনে ছেড়ে দেওয়া হয়।
- না বুঝে মেনে নিচ্ছে। আপনি যে কোডটি প্রকাশ করেন না তা একটি ঋণ যা আপনি রক্ষা করতে পারবেন না।
- পার্শ্ব প্রতিক্রিয়া এবং অর্থ/তারিখের মতো সংবেদনশীল প্রকারগুলিকে উপেক্ষা করা। নিরবচ্ছিন্ন ইতিহাসের সাথে অর্থ ভাসানো ত্রুটির একটি ক্লাসিক উত্স।
সংক্ষেপে
এআই-এর সাথে কোড লেখা হচ্ছে সুশৃঙ্খল জোড়া প্রোগ্রামিং: স্পষ্ট চুক্তি, ছোট পদক্ষেপ, প্রতিটি ধাপে তৈরি এবং পরীক্ষা। শুরু থেকে ইনপুট-আউটপুট-ত্রুটি-সীমাবদ্ধতা প্রদান করা কোডের গুণমান নির্ধারণ করে। এটি যে কোডটি তৈরি করে তা ব্যাখ্যা করা এবং প্রান্তের ক্ষেত্রে এটিকে জোর করে সুখী দৃশ্যের অধীনে লুকানো ত্রুটিগুলিকে পৃষ্ঠে নিয়ে আসে। গতির উৎস অন্ধ গ্রহণ নয়; দ্রুত খসড়া এবং দ্রুত যাচাই।
আবেদন টাস্ক
একটি ছোট কিন্তু বাস্তব ফাংশন চয়ন করুন (যেমন ঝুড়ি মোট, তারিখ পার্থক্য, পাঠ্য পার্সিং)। চুক্তিবদ্ধ ফাংশন প্রম্পট ব্যবহার করে মুদ্রণ করুন; এটির পাশে কমপক্ষে 5টি পরীক্ষার পরিস্থিতি যুক্ত করুন৷ কোডটি চালান এবং টেবিলটিকে গাইড হিসাবে ব্যবহার করে সচেতনভাবে 5টি প্রান্তের ক্ষেত্রে চেষ্টা করুন। কমপক্ষে একটি প্রান্তের ক্ষেত্রে একটি বাগ খুঁজুন (যদি না হয়, ফাংশনটি জোর করার জন্য একটি নতুন ইনপুট ডিজাইন করুন), এটি AI দিয়ে ঠিক করুন এবং সংশোধনটি কাজ করেছে কিনা তা পুনরায় পরীক্ষা করে যাচাই করুন৷
চেকলিস্ট
- [ ] আমি একটি চুক্তি লিখেছি যাতে ইনপুট, আউটপুট, ত্রুটি এবং সীমাবদ্ধতা রয়েছে৷
- [ ] আমি একটি বড় ব্লকের পরিবর্তে ছোট ধাপে কোড তৈরি করেছি।
- [ ] আমি কোডের পাশে একটি পরীক্ষা/নমুনা রান ব্লক যোগ করেছি।
- [ ] আমি সচেতনভাবে কমপক্ষে 5টি প্রান্তের ক্ষেত্রে পরীক্ষা করেছি৷
- [ ] আমি AI কে কোডটি ব্যাখ্যা করেছি এবং এর অনুমান পর্যালোচনা করেছি।
- [ ] আমি পাওয়া ত্রুটি সংশোধন করেছি এবং পুনরায় পরীক্ষা করে সংশোধন নিশ্চিত করেছি৷