কখনও কি এমন ইচ্ছে হয়েছে যে আপনার কোডটি যদি নিজে নিজেই লিখতে পারত?
আপনি নিশ্চয়ই সেই মুহূর্তটি জানেন, যখন আপনি স্ক্রিনের দিকে তাকিয়ে ফিসফিস করে বলেন, “শুধু API কলটা করে দাও”, আর কম্পিউটার আপনার দিকে এমনভাবে তাকিয়ে থাকে যেন আপনি তাকে ট্যাক্স করতে বলেছেন? ঠিক তখনই AI কোডিং অ্যাসিস্ট্যান্টরা ক্যাপ পরে প্রবেশ করে। আজকের তারকা: ক্লড। উনিশ শতকের দার্শনিক কবি নয়—এই AI মডেলটি আপনার প্রম্পটকে কার্যকরী কোডে রূপান্তরিত করে, যা দেখলে মনে হয় রোগীর পাশে বসা একজন সেবিকা অদ্ভুতভাবে ধৈর্য ধরে কাজ করে যাচ্ছে।
আমি ক্লডকে একজন অতি ভদ্র সু-শেফের মতো এক সপ্তাহ ধরে পরিচালনা করেছি। “ক্লড, এই JSON টাকে ছোট ছোট করে কাটো।” “ক্লড, এই SQL টাকে ভালোভাবে ভাজো।” “ক্লড, ইউনিট টেস্টগুলো পুড়িয়ে ফেলো না।” শেষ পর্যন্ত, আমি একটি সাধারণ সত্য জানতে পেরেছি: ক্লড কোড থেকে দারুণ ফল পাওয়া যাদুবিদ্যার চেয়েও বেশি গুরুত্বপূর্ণ, আর তা হল আপনি এটির সাথে কীভাবে কথা বলছেন। একজন দুর্দান্ত ইন্টার্নের মতো, এটি স্পষ্ট নির্দেশাবলী, উদাহরণ এবং একটি পরিকল্পনা দিয়ে উন্নতি লাভ করে।
ক্লড কোড টিপসের জন্য এটি আপনার বন্ধুত্বপূর্ণ, সামান্য ক্যাফেইনযুক্ত গাইড—প্রম্পট থেকে কোড এক্সিকিউশন পর্যন্ত—যাতে আপনার পরবর্তী সেশনটি একটি চলমান অ্যাপ দিয়ে শেষ হয়, কোনো খারাপ অভিজ্ঞতা দিয়ে নয়।
ক্লড কী—এবং আপনার কেন এটি নিয়ে ভাবা উচিত?
ক্লড হল অ্যানথ্রোপিক (Anthropic) থেকে আসা একটি AI মডেল, যা বিশেষভাবে লেখা, যুক্তি দেওয়া এবং টেক্সট তৈরি করার জন্য ভালো—যার মধ্যে কোডও অন্তর্ভুক্ত। এটিকে একজন সতর্ক, বিবেকবান সহ-পাইলট হিসাবে মনে করুন, যে সানন্দে ফাংশন লিখতে, আপনার স্ট্যাক ট্রেসকে একটি ঘুমপাড়ানি গল্পের মতো ব্যাখ্যা করতে এবং এমনকি আপনার স্প্যাগেটিকে লিঙ্গুইনে (linguine) তে রূপান্তর করতেও রাজি।
যেখানে এটি উজ্জ্বল:
- সাধারণ ইংরেজি প্রম্পটকে পাইথন, জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্ট, গো এবং আরও অনেক ভাষায় কোড স্নিপেটে রূপান্তরিত করা।
- সঠিক উপায়ে জিজ্ঞাসা করলে প্রান্তিক পরিস্থিতি এবং পরীক্ষা সম্পর্কে যুক্তি দিতে পারা।
- আপনার রেপোর (repo) বড় অংশ (কনটেক্সট সীমার মধ্যে) পড়ে বিশৃঙ্খলাটির সারসংক্ষেপ করতে পারা।
যেখানে এটির একটি ধাক্কার প্রয়োজন:
- অস্পষ্ট প্রম্পট থেকে অস্পষ্ট কোড পাওয়া যায়। (এটা কোনো ভবিষ্যৎদ্রষ্টা নয়; এটা ভদ্র।)
- আপনি যদি রানটাইম বা ফ্রেমওয়ার্কের সংস্করণ উল্লেখ না করেন, তবে এটি ভুল ডিফল্ট 'মনে' রাখতে পারে।
- এটি অনুমান করার সময় আত্মবিশ্বাসী শোনাতে পারে—তাই আপনি একজন পরিণত ইঞ্জিনিয়ারের মতো লোকালি পরীক্ষা, লিন্ট এবং রান করবেন।
প্রম্পট যা টাকা ছাপে (আচ্ছা, কার্যকরী কোড)
এখানে সেই প্রণালী দেওয়া হল, যেখানে আমি বারবার ফিরে এসেছি। এটি আমার ক্লড কোড প্রম্পট স্যান্ডউইচ: কনটেক্সট, সীমাবদ্ধতা এবং চেকিং।
- কনটেক্সট: আপনি কী তৈরি করছেন, পরিবেশ এবং বিদ্যমান যেকোনো কোড।
- সীমাবদ্ধতা: ভাষা, সংস্করণ, ফ্রেমওয়ার্ক, কর্মক্ষমতা বা পঠনযোগ্যতার লক্ষ্য।
- চেকিং: আমরা কীভাবে সাফল্যের মূল্যায়ন করব—পরীক্ষা, লগ বা নমুনা ইনপুট/আউটপুট।
একটি টেমপ্লেট যা আপনি চুরি করতে পারেন:
“ভূমিকা: আপনি একজন সতর্ক সিনিয়র ইঞ্জিনিয়ার।
লক্ষ্য: X তৈরি করুন যা Y করে।
পরিবেশ: Node 20, Express 4, PostgreSQL 15। রেন্ডারে চলছে। টাইপস্ক্রিপ্ট ব্যবহার করুন।
ইন্টারফেস: এখানে একটি উদাহরণ রিকোয়েস্ট/রেসপন্স দেওয়া হল।
সীমাবদ্ধতা: স্ট্যান্ডার্ড লাইব্রেরি পছন্দ করুন। প্রয়োজন না হলে বাহ্যিক নির্ভরতা এড়িয়ে চলুন।
বিতরণযোগ্য বিষয়:
- একটি এক-কমান্ড রান করার নির্দেশ
বৈধতা: নমুনা ইনপুট/আউটপুট দিন যা আমি যাচাই করার জন্য পেস্ট করতে পারি।”
এবার দেখুন কীভাবে এটি একটি সামান্য “একটি API তৈরি করুন” কে একজন সার্জনের চেকলিস্টে পরিণত করে।
প্রম্পট থেকে কোড এক্সিকিউশন: একটি হাতে-কলমে ওয়াকথ্রু
ধরুন, আপনি একটি ছোট পরিষেবা চান যা মার্কডাউনকে HTML-এ রূপান্তর করে সামান্য স্যানিটাইজেশন (sanitization) সহ। এখানে প্রম্পট স্যান্ডউইচ প্রয়োগ করলে কী ঘটে তা দেখানো হল।
প্রম্পট (সংক্ষিপ্ত):
“Node 20 + Express 4 (টাইপস্ক্রিপ্ট) এ একটি POST /render এন্ডপয়েন্ট তৈরি করুন। ইনপুট: { markdown: string }। আউটপুট: { html: string }। ভারী নির্ভরতা এড়িয়ে চলুন; বেসিক ট্যাগ স্যানিটাইজ করুন; Jest পরীক্ষা অন্তর্ভুক্ত করুন; চালানোর জন্য একটি একক কমান্ড দিন; কার্ল (curl) উদাহরণ দেখান।”
আপনি যখন স্পষ্ট হন তখন ক্লড যা ফেরত দেয়:
- টাইপস্ক্রিপ্ট সেটআপ সহ একটি পরিপাটি এক্সপ্রেস সার্ভার
- একটি সংক্ষিপ্ত স্যানিটাইজার (sanitizer) (অথবা সমর্থন সহ একটি সতর্ক নির্ভরতা)
- খালি ইনপুট, দীর্ঘ ইনপুট এবং খারাপ ট্যাগগুলি কভার করে Jest পরীক্ষা
- কার্ল (curl) কমান্ড যেমন:
curl -X POST -H "Content-Type: application/json" -d '{"markdown":"# Hello "}'
অভ্যন্তরীণ টিপ: কোডের প্রতিটি ধাপ কেন বিদ্যমান তা ব্যাখ্যা করে এমন মন্তব্য করতে বলুন। শুধু এটি আপনাকে দশ মিনিটের কুঁচকে যাওয়া এবং ভবিষ্যতের জন্য একটি Slack বার্তা বাঁচাতে পারে।
ক্লড কোড টিপস যা সত্যিই কাজে লাগে
1) এমনভাবে সংস্করণ উল্লেখ করুন যেন আপনি একটি ক্যাম্পিং ট্রিপের জন্য প্যাকিং করছেন
- খারাপ: “একটি Flask অ্যাপ তৈরি করুন।”
- ভালো: “একটি Flask অ্যাপ তৈরি করুন (Python 3.11, Flask 3.0),
flask run এর মাধ্যমে চালান, কোনো গ্লোবাল স্টেট নয়, deps এর জন্য pip-tools ব্যবহার করুন।”
কেন? ফ্রেমওয়ার্ক পরিবর্তিত হয়, এবং ক্লড অনেক কিছু জানে—কিন্তু এটি আপনার মেশিন সম্পর্কে সর্বজ্ঞ নয়। সংস্করণ স্পষ্টতা সেই “2022 থেকে আমার ল্যাপটপে কাজ করে” মুহূর্তগুলি এড়িয়ে যায়।
2) উদাহরণসহ একটি ছোট স্পেসিফিকেশন দিন
“এই ইনপুট দিলে, আমি ঠিক এই আউটপুট আশা করি।” কমপক্ষে নিম্নলিখিতগুলি অন্তর্ভুক্ত করুন:
- একটি প্রান্তিক ঘটনা (খালি, নাল, সীমা)
- একটি খারাপ ঘটনা (অবৈধ প্রকার, ক্ষতিকারক পেলোড)
ক্লড আপনার সম্পূর্ণতাকে প্রতিফলিত করবে। আপনি যদি এটির হাতে একটি রুলার দেন, তবে এটি সঠিকভাবে পরিমাপ করবে।
3) প্রথমে পরীক্ষার জন্য জিজ্ঞাসা করুন, ডেজার্ট হিসাবে নয়
আপনি যখন বলেন, “Jest পরীক্ষা লিখুন যা রিগ্রেস করলে ব্যর্থ হবে,” আপনি একটি সিটবেল্ট আগে থেকেই ইনস্টল করছেন। ক্লড এমন পরীক্ষা তৈরি করতে পারে যা ডকুমেন্টেশন হিসাবে দ্বিগুণ হয়—এবং সেগুলি প্রায়শই এটির নিজের তৈরি ইম্পোর্টগুলি ধরে ফেলবে।
4) একটি রান/যাচাই বিভাগ দাবি করুন
দুর্দান্ত প্রম্পটগুলি এই দিয়ে শেষ হয়: “ধাপে ধাপে রান করার নির্দেশাবলী এবং একটি যাচাই করার কমান্ড অন্তর্ভুক্ত করুন যা আমি পেস্ট করতে পারি।” ডকার, পোয়েট্রি, বা Node এর অদ্ভুততা যখন তাদের মাথা দেখায় তখন আপনার ভবিষ্যৎ সংস্করণ আপনাকে ধন্যবাদ জানাবে।
5) আপনার বিদ্যমান কোড দেখান, তবে ছেঁটে ফেলুন
পুরো রেপো পেস্ট করা কাউকে লাইব্রেরি অফ কংগ্রেস দেওয়ার মতো, যখন তারা একটি রেসিপি চেয়েছিল। শুধুমাত্র প্রাসঙ্গিক ফাইলগুলি দিন (প্যাকেজ.json বা পাইপ্রজেক্ট সহ যা ইম্পোর্টগুলিকে প্রভাবিত করে)। ক্লডকে শুধুমাত্র আপনার তালিকাভুক্ত ফাইলগুলিতে রিফ্যাক্টর (refactor) করার পরামর্শ দিতে বলুন—গার্ডরেলগুলি সাহায্য করে।
6) ডিফের (diff) মধ্যে চিন্তা করুন
আপনি যদি কোড পরিবর্তন করছেন, তাহলে জিজ্ঞাসা করুন: “X এবং Y ফাইলের জন্য একটি ইউনিফাইড ডিফ প্যাচ ফেরত দিন, কোড ব্লকে কোনো ধারাভাষ্য নয় এবং পরে একটি আলাদা ব্যাখ্যা দিন।” এটি কপি-পেস্ট-বান্ধব হয়ে যায়—এবং সেই “আমি এটা কোথায় রাখব?” এই দ্বিধা এড়িয়ে যায়।
7) এটিকে সাধারণ ইংরেজিতে নিজেকে ব্যাখ্যা করতে বলুন
“কোডের আগে, ৫টি বুলেট পয়েন্টে পদ্ধতির রূপরেখা দিন। কোডের পরে, ট্রেডঅফগুলি ব্যাখ্যা করুন।” যখন ক্লড একটি পরিকল্পনা স্পষ্টভাবে প্রকাশ করে, তখন এটি ভুল দিকে ৩০০ লাইন লেখার আগে আপনি এটিকে পরিচালনা করতে পারেন।
8) অতিরিক্ত নাগালের বিরুদ্ধে গার্ডরেল সেট করুন
“আমি অনুমোদন না দেওয়া পর্যন্ত তৃতীয় পক্ষের নির্ভরতা যোগ করবেন না। যদি আপনি মনে করেন যে আমাদের একটির প্রয়োজন, তাহলে সুবিধা/অসুবিধা সহ দুটি বিকল্প প্রস্তাব করুন।” এখন আপনি স্থপতি, একজন নিষ্ক্রিয় যাত্রী নন।
9) এটিকে সুরক্ষা এবং কর্মক্ষমতার দিকে ঠেলে দিন
এর মতো প্রম্পট যোগ করুন:
- “সমস্ত ইনপুট যাচাই করুন; >1MB এর পেলোড প্রত্যাখ্যান করুন।”
- “আউটপুট এসকেপ করুন; প্রতিকূল ইনপুট ধরে নিন।”
- “বিগ-ও (Big-O) টার্গেট: মূল পথের জন্য O(n log n) বা আরও ভালো।”
- “শুধুমাত্র নিরাপদ, নন-PII মেটাডেটা লগ করুন।”
ক্লড অনুষ্ঠানের জন্য প্রস্তুত হবে (অথবা অন্তত স্মার্ট প্রশ্ন জিজ্ঞাসা করবে)।
10) এটিকে একটি ব্যক্তিত্ব দিন—দরকারী, কিন্তু চটকদার নয়
“সংক্ষিপ্ত হোন, কোডিং করার আগে স্পষ্টীকরণমূলক প্রশ্ন জিজ্ঞাসা করুন এবং জল্পনা-কল্পনা এড়িয়ে চলুন।” এটা আশ্চর্যজনক যে সেই একটি বাক্য কতবার অর্ধেক পথ কমিয়ে দেয়।
দুটি প্রম্পটের গল্প
- অস্পষ্ট প্রম্পট: “এমন একটি স্ক্রিপ্ট তৈরি করুন যা আমার CSV গুলি পরিষ্কার করে।”
ফলাফল: একটি স্ক্রিপ্ট যা একটি CSV (একবচন) পরিষ্কার করে, কমা ধরে নেয়, সেমিকোলনগুলিতে আটকে যায় এবং ১৯৯৯ সালের মতো ইউনিকোড ভুলে যায়।
- ক্লড কোড স্পেশাল: “একটি পাইথন 3.11 স্ক্রিপ্ট
clean_csv.py তৈরি করুন যা:
- CLI আর্গুমেন্ট হিসাবে ইনপুট এবং আউটপুট ফাইলের পাথ গ্রহণ করে
- ডিলিমিটার (কমা/সেমিকোলন/ট্যাব) সনাক্ত করে
- স্নেক_কেস (snake_case) এ হেডারগুলিকে স্বাভাবিক করে
- BOM সরিয়ে দেয় এবং হোয়াইটস্পেস ছাঁটাই করে
- উদ্ধৃতি সংরক্ষণ করে; UTF-8 পরিচালনা করে
- 3টি নমুনা ফিক্সচার সহ
pytest পরীক্ষা অন্তর্ভুক্ত করে
- একটি
Makefile টার্গেট make test এবং make run প্রদান করে।”
দ্বিতীয়টি প্রায় নিজেই ইনস্টল হয়ে যায়।
কোড চালানো: আপনার পাঁচ মিনিটের, কোনো নাটকীয়তা ছাড়া চেকলিস্ট
আপনি ক্লডের কোড পেয়েছেন। এখন কী? এখানে একটি ছোট নিয়ম দেওয়া হল যা ৮০% “এটা চলে না” এই নাটকীয়তা কমিয়ে দেয়।
- যদি Node হয়: node_modules ডিলিট করুন,
npm ci চালান (অথবা pnpm i --frozen-lockfile)। যদি পাইথন হয়: নতুন ভার্চুয়ালেনভি (virtualenv) + pip install -r requirements.txt (অথবা Poetry)। যদি Go হয়: go mod tidy।
- ESLint/Prettier অথবা Black/Ruff চালান। অনুপস্থিত থাকলে কনফিগার যোগ করার জন্য ক্লডকে প্রম্পট করুন। সামঞ্জস্যপূর্ণ ফরম্যাটিং “ফ্যান্টম” ডিফারেন্স (difference) প্রতিরোধ করে।
- অ্যাপের আগে পরীক্ষা চালান। যদি সেগুলি ব্যর্থ হয়, তাহলে ক্লডে ত্রুটিগুলি কপি করুন এবং বলুন: “ডায়াগনোস করুন এবং ন্যূনতম ডিফারেন্স প্রস্তাব করুন।”
- ক্লড সরবরাহ করা সঠিক স্টার্ট কমান্ড ব্যবহার করুন। যদি এটি ভুলে গিয়ে থাকে, তবে এটিকে একটি যোগ করতে বলুন।
- নমুনা কার্ল (curl) বা CLI ইনপুট পেস্ট করুন। নিশ্চিত করুন যে আউটপুট স্পেসিফিকেশনের সাথে মেলে। যদি না মেলে, তাহলে অমিলটি পেস্ট করুন এবং ক্লডকে স্পেসিফিকেশন বনাম কোড মেলাতে বলুন।
- আপনার পরিবর্তনগুলি ছোট রাখুন। ডিফের জন্য জিজ্ঞাসা করুন। পুনরায় পরীক্ষা চালান। পুনরাবৃত্তি করুন। এটি আপনার দাঁত ব্রাশ করার মতো: অ-আকর্ষনীয়, জীবন রক্ষাকারী।
ডিবাগিং ড্যান্স: কীভাবে ক্লডকে ত্রুটিগুলি ফেরত পাঠাবেন
ক্লড তার সেরাটা দেয় যখন আপনি এটির সাথে একজন প্রোগ্রামার বন্ধুর মতো আচরণ করেন যার চোখ আছে কিন্তু আপনার কীবোর্ডে কোনো হাত নেই।
- স্ট্যাক ট্রেস এবং লাইন নম্বর সহ সঠিক ত্রুটি পেস্ট করুন।
- যে ফাইলটি ব্যর্থ হয়েছে তার স্নিপেট (সমস্যার আশেপাশে ২০-৪০ লাইন) অন্তর্ভুক্ত করুন।
- আপনি যা চেষ্টা করেছেন তা উল্লেখ করুন: “আমি X চালিয়েছি; Y আশা করেছিলাম; Z পেয়েছি।”
- সবচেয়ে ছোট ফিক্সের (fix) জন্য জিজ্ঞাসা করুন: “একটি ন্যূনতম ডিফ প্যাচ প্রস্তাব করুন।”
বোনাস: আপনার OS এবং শেল বলুন। অনেকগুলি “রহস্যময়” বাগ আসলে উইন্ডোজ পাথ বনাম POSIX, অথবা zsh এস্কেপিং।
ক্লড বনাম বাস্তবতা: তিনটি সাধারণ গর্ত (এবং ফিক্স)
- উপসর্গ: আপনার ইনস্টল না করা একটি লাইব্রেরির জন্য “ModuleNotFoundError”
- ফিক্স: “package.json/requirements.txt এ তালিকাভুক্ত নয় এমন লাইব্রেরি ধরে নেবেন না। যদি কোনো ডীপ প্রয়োজনীয় মনে হয়, তাহলে সুবিধা/অসুবিধা সহ বিকল্প প্রস্তাব করুন এবং অনুমোদনের জন্য জিজ্ঞাসা করুন।”
- উপসর্গ: কোড এমন এক্সপ্রেস ৫ API-কে লক্ষ্য করে যা আপনি এখনও ব্যবহার করছেন না।
- ফিক্স: “শুধুমাত্র এক্সপ্রেস ৪.১৮ API ব্যবহার করুন; যদি আপনার ৫.x ফিচারের প্রয়োজন হয়, তাহলে বিকল্প উপায় ব্যাখ্যা করুন।”
- মাত্রাতিরিক্ত ইঞ্জিনিয়ারিং
- উপসর্গ: দুটি কারখানা, একটি ভিজিটর প্যাটার্ন এবং একটি বৈশিষ্ট্যের জন্য একটি ছোট পরিচয় সংকট যা 'হ্যালো' প্রিন্ট করে।
- ফিক্স: “স্ট্যান্ডার্ড লাইব্রেরিকে সমর্থন করুন; অ্যাবস্ট্রাকশন কমান; যতক্ষণ না পর্যন্ত ন্যায়সঙ্গত হয় ততক্ষণ ফাংশনগুলিকে ৫০ লাইনের নিচে রাখুন; চতুরতার চেয়ে পঠনযোগ্যতার দিকে লক্ষ্য রাখুন।”
ক্লডকে আপনার কোড পর্যালোচক করুন (আপনি এখনও বস থাকবেন)
এটি চেষ্টা করুন:
“স্পষ্টতা, সুরক্ষা, কর্মক্ষমতা এবং পরীক্ষার জন্য নিম্নলিখিত ডিফের পর্যালোচনা করুন। ফেরত দিন:
- উচ্চ-ঝুঁকির সমস্যাগুলির ৫টি বুলেট
- প্রস্তাবিত ইউনিট পরীক্ষা যা আমার নেই
- একটি সংক্ষিপ্ত, বন্ধুত্বপূর্ণ সারাংশ যা আমি একটি PR-এ পেস্ট করতে পারি।”
ক্লড সেই জিনিসগুলি ধরবে যা আপনার চোখ বিকেল ৫:৫২-এ এড়িয়ে যায়, যেমন একটি DB কার্সার বন্ধ করতে ভুলে যাওয়া বা কনফেটি কামানের মতো any ব্যবহার করা।
কনটেক্সট উইন্ডোগুলির সাথে পেয়ার প্রোগ্রামিং: কী অন্তর্ভুক্ত করবেন, কী বাদ দেবেন
কনটেক্সট হল ক্লডের কাজের স্মৃতি। এটিকে হ্যান্ড লাগেজ হিসাবে বিবেচনা করুন: মূল্যবান এবং সীমিত।
অন্তর্ভুক্ত করুন:
- আপনি যে ফাইলটি পরিবর্তন করতে চান (পুরো)
- এর সরাসরি প্রতিবেশী যা এটি ইম্পোর্ট করে
- যে কনফিগার রানটাইমকে আকার দেয় (tsconfig, package.json, pyproject)
বাদ দিন:
- বিল্ড আর্টিফ্যাক্ট, ভেন্ডরড ডিপ, লকফাইল (যদি না ইনস্টল করার সমস্যা ডিবাগ করা হয়)
- বিশাল ডেটা ফাইল (পরিবর্তে কাঠামো সংক্ষিপ্ত করুন)
যদি আপনাকে একটি বৃহত্তর রেপো পরিচালনা করতে হয়, তাহলে প্রথমে রিফ্যাক্টর করার পরিকল্পনা করতে ক্লডকে বলুন। “প্রতি ধাপে ডিফের সাথে একটি তিন-ধাপের পরিকল্পনা প্রস্তাব করুন। আমরা এখন ১ নম্বর ধাপ করব।”
সুরক্ষা, গোপনীয়তা এবং “আমার কি এটা পেস্ট করা উচিত?” এই প্রশ্ন
আপনি যা কখনও শেয়ার করেননি ক্লড তা ফাঁস করতে পারে না। কোড পেস্ট করার আগে:
- সিক্রেট সরান: API কী, টোকেন, ব্যক্তিগত URL।
- প্রকৃত ডেটাকে প্রতিনিধিত্বমূলক নকল দিয়ে প্রতিস্থাপন করুন।
- আপনি যদি একটি নিয়ন্ত্রিত পরিবেশে থাকেন, তাহলে অন-প্রিম বা একটি অনুমোদিত স্থাপন ব্যবহার করুন।
আপনার প্রম্পটে একটি নীতি যোগ করুন: “সমস্ত ইনপুটকে সংবেদনশীল হিসাবে বিবেচনা করুন; সিক্রেট লগ করবেন না; আমাকে নিরাপদে env vars কোথায় সংরক্ষণ করতে হবে তা দেখান।” ক্লড সানন্দে সম্মতি জানাবে, কারণ এটি ডেটা লঙ্ঘন উপভোগ করে না।
ক্লড কোড + আপনার সরঞ্জাম: কম্বো মুভ
- Git এর সাথে: কমিট বার্তাগুলির জন্য জিজ্ঞাসা করুন যা কনভেনশনাল কমিটস (Conventional Commits) অনুসরণ করে, সাথে একটি এক লাইনের সারাংশ যা আপনি গিটহাবে পেস্ট করতে পারেন।
- ডকারের সাথে: “একটি ন্যূনতম, উৎপাদন-প্রস্তুত ডকারফাইল এবং একটি মাল্টি-স্টেজ বিল্ড তৈরি করুন; ট্রেডঅফগুলি ব্যাখ্যা করুন।”
- CI এর সাথে: “একটি গিটহাব অ্যাকশনস ওয়ার্কফ্লো তৈরি করুন যা Node 20 এবং 22-এ পরীক্ষা চালায়; deps ক্যাশে করুন; লিন্টে ব্যর্থ হন।”
- ডক্সের সাথে: “আপনার লেখা কোডের উপর ভিত্তি করে একটি README কুইক স্টার্ট এবং 'সমস্যা সমাধান' বিভাগ লিখুন।”
এটি শুধু কোড তৈরি নয়; এটি কাগজের কাটছাঁট ছাড়াই প্রকল্পের কাঠামো তৈরি করা।
কখন ক্লডকে বিশ্বাস করবেন—এবং কখন চোখ কুঁচকে দেখবেন
- CRUD হ্যান্ডলার, ইনপুট ভ্যালিডেশন, বেসিক অথ ফ্লো, CLI ইউটিলিটি, ট্রান্সফর্ম স্ক্রিপ্ট, ইউনিট টেস্ট ড্রাফট করার জন্য ক্লডকে বিশ্বাস করুন।
- ক্রিপ্টোগ্রাফি, পেমেন্ট লজিক, জটিল কনকারেন্সি, কমপ্লায়েন্সের প্রয়োজনীয়তা আছে এমন যেকোনো কিছুর দিকে চোখ কুঁচকে দেখুন। প্যাটার্ন এবং সিউডো-কোডের জন্য জিজ্ঞাসা করুন, তারপর যাচাইকৃত লাইব্রেরি এবং মানুষের পর্যালোচনা দিয়ে বাস্তবায়ন করুন।
সাধারণ নিয়ম: আপনি যদি দ্বিতীয় মতামত ছাড়া কোনো র্যান্ডম ফোরাম থেকে কোড কপি না করেন, তাহলে AI-জেনারেট করা কোডও অন্ধভাবে পাঠাবেন না। ক্লড সহায়ক, জাদুকরী নয়।
একটি দ্রুত যাত্রা: Sider.AI আপনার ক্লড লুপকে দ্রুত করতে পারে
এখানে একটি আশ্চর্য: Sider.AI প্রায় যাদুর কাছাকাছি আসে—যতক্ষণ না আপনি এটিকে সেই দিকে লক্ষ্য করেন যার জন্য এটি তৈরি করা হয়েছে। যদি আপনার ওয়ার্কফ্লো হয় “ক্লডকে প্রম্পট করুন, কোড চালান, ত্রুটি পেস্ট করুন, পুনরাবৃত্তি করুন”, Sider.AI-এর পাশাপাশি আপনার কোডের সাথে চ্যাট করার অভিজ্ঞতা সেই লুপটিকে টাইট রাখে। এটি ফাইলগুলিকে রেফারেন্স করতে পারে, পালাগুলির মধ্যে কনটেক্সট রাখতে পারে এবং ক্যাফিনযুক্ত কাঠবিড়ালির মতো ছয়টি উইন্ডোর মধ্যে লাফানো ছাড়াই আপনাকে পরিবর্তনগুলি পরীক্ষা করতে সহায়তা করতে পারে। এটি নিখুঁত নয়—কোনো সরঞ্জামই নিখুঁত নয়—তবে প্রম্পট-থেকে-এক্সিকিউশন চক্রের জন্য, এটি একটি আরামদায়ক ককপিট। একটি মিনি প্লেবুক: পাঁচটি প্রম্পট যা আপনি সাপ্তাহিক পুনরায় ব্যবহার করবেন
- একটি পরিষেবা বুটস্ট্র্যাপ করুন
“একটি Node 20 + Express 4 টাইপস্ক্রিপ্ট পরিষেবা তৈরি করুন যার একটি POST /health এবং GET /version আছে। tsconfig, eslint, jest, build/test/start এর জন্য npm স্ক্রিপ্ট, ডকারফাইল এবং গিটহাব অ্যাকশন অন্তর্ভুক্ত করুন। যাচাই করার জন্য একটি কার্ল (curl) কমান্ড দিন।”
- পঠনযোগ্যতার জন্য রিফ্যাক্টর করুন
“স্পষ্টতা এবং পরীক্ষার জন্য নীচের ফাংশনটি রিফ্যাক্টর করুন। আচরণ অভিন্ন রাখুন। প্রান্তিক ঘটনাগুলি ক্যাপচার করে এমন 3টি ইউনিট পরীক্ষা যোগ করুন। প্রতিটি পরিবর্তন এক বাক্যে ব্যাখ্যা করুন।”
- ডাটাবেস স্কিমা + মাইগ্রেশন
“একটি নোট অ্যাপের জন্য একটি PostgreSQL 15 স্কিমা ডিজাইন করুন: ব্যবহারকারী, নোট, ট্যাগ, নোট_ট্যাগ। CREATE TABLE স্টেটমেন্ট, ইন্ডেক্স, একটি মাইগ্রেশন স্ক্রিপ্ট এবং একটি নমুনা বীজ দিন। প্রত্যাশিত ক্যোয়ারী প্যাটার্ন সহ ইন্ডেক্সগুলিকে ন্যায্যতা দিন।”
“এই ধীর ফাংশন এবং এর প্রোফাইলার আউটপুট দেওয়া হলে, একটি দ্রুত পদ্ধতির প্রস্তাব করুন। 2x স্পীডআপকে লক্ষ্য করুন। একটি বেঞ্চমার্কিং হার্নেস দিন এবং ট্রেডঅফগুলি ব্যাখ্যা করুন।”
“এই API-তে ইনপুট ভ্যালিডেশন, রেট লিমিটিং এবং রিকোয়েস্ট লগিং যোগ করুন। নির্ভরতা ন্যূনতম রাখুন। নিরাপদ ডিফল্ট, env vars এর মাধ্যমে কনফিগার এবং পরীক্ষা দেখান যা রেট-লিমিটিং আচরণ নিশ্চিত করে।”
কপি করুন, পেস্ট করুন, ধুয়ে ফেলুন, পাঠিয়ে দিন।
সমস্যা সমাধানের সাইডবার: যখন ক্লড লাইন থেকে সরে যায়
- উপসর্গ: আপনি একটি লাইনের জন্য জিজ্ঞাসা করলে আপনার পুরো ফাইলটি পুনরায় লেখে।
ফিক্স: “শুধুমাত্র পরিবর্তিত লাইনগুলির সাথে একটি ন্যূনতম ইউনিফাইড ডিফ ফেরত দিন। কোড ব্লকের ভিতরে কোনো অতিরিক্ত ধারাভাষ্য নয়।”
- উপসর্গ: ভুল ফ্রেমওয়ার্ক প্যাটার্ন বেছে নিতে থাকে।
ফিক্স: “ফাইলের বিদ্যমান শৈলী অনুসরণ করুন। আমি না বলা পর্যন্ত ক্লাস/হুক/অ্যাসিঙ্কে রূপান্তর করবেন না।”
- উপসর্গ: আপনার পরীক্ষা উপেক্ষা করছে।
ফিক্স: “পরীক্ষাগুলিকে সত্যের উৎস করুন; সেগুলিকে সন্তুষ্ট করার জন্য কোড সারিবদ্ধ করুন। যদি পরীক্ষাগুলি স্পেসিফিকেশনের সাথে সাংঘর্ষিক হয়, তাহলে কীভাবে মেলাতে হবে তা প্রস্তাব করুন।”
- উপসর্গ: অ-অনুমোদিত নির্ভরতা ব্যবহার করে।
ফিক্স: “স্ট্যান্ডার্ড লাইব্রেরিতে লেগে থাকুন। যদি কোনো ডিপ অপরিহার্য হয়, তাহলে থামুন এবং দুটি বিকল্পের সাথে অনুমোদনের জন্য জিজ্ঞাসা করুন।”
ডকুমেন্টেশন সম্পর্কে একটি মৃদু কথা
ক্লডকে তৈরি করতে বলুন:
- একটি কুইক স্টার্ট যা আপনার রেপোর আসল কমান্ডগুলিকে প্রতিফলিত করে
- আপনার পরীক্ষার ব্যর্থতা থেকে প্রাপ্ত একটি সমস্যা সমাধান বিভাগ
- ইংরেজি ভাষায় সংক্ষিপ্ত রূপান্তরকারী একটি শব্দকোষ
- ইনলাইন ডকস্ট্রিং যা শুধু কী নয়, কেন ব্যাখ্যা করে
ডক্স ডেজার্ট নয়; এটি প্লেট। আপনি যখন এটি অনুপস্থিত থাকে তখন লক্ষ্য করেন।
জাহাজ পাঠানোর আগে 10-সেকেন্ডের চেকলিস্ট
- পরীক্ষাগুলি কি স্থানীয়ভাবে এবং CI-তে পাস হয়?
- নির্ভরতা কি পিন করা এবং ন্যূনতম?
- আপনি কি রেপোর ইতিহাসে সিক্রেটের জন্য স্ক্যান করেছেন?
- ত্রুটি বার্তাগুলি কি সহায়ক (অ্যাকশন + ইঙ্গিত) এবং অভ্যন্তরীণ বিষয়গুলি ফাঁস করছে না?
- একটি রোলব্যাক পরিকল্পনা বা ফিচার ফ্ল্যাগ আছে?
যদি আপনি সেগুলির উত্তর হ্যাঁ দিতে না পারেন, তাহলে ফাঁক পূরণ করতে ক্লডকে সাহায্য করতে বলুন। এটি আশ্চর্যজনকভাবে সেই জিনিসগুলি লিখতে ভালো যা আমরা স্থগিত করতে চাই।
শেষ কথা: আপনি কথা বলুন, ক্লড তৈরি করে—এবং আপনি দায়িত্বে থাকুন
ক্লড কোডকে একজন উজ্জ্বল জুনিয়র ডেভেলপার নিয়োগ করার মতো মনে হতে পারে যে কখনও ঘুমায় না এবং আপনার খুঁতখুঁতেমিকে কখনও অপছন্দ করে না। আপনি যখন সংস্করণ, উদাহরণ, সীমাবদ্ধতা এবং আপনি কীভাবে পরীক্ষা করবেন সে সম্পর্কে নির্দিষ্ট হন, তখন এটি যে কোড লেখে তা প্রথম চেষ্টাতেই চলার প্রবণতা রাখে। আপনি যখন রসিদ—একটি স্ট্যাক ট্রেস, একটি স্নিপেট, প্রত্যাশিত বনাম বাস্তব—দিয়ে ত্রুটিগুলি ফেরত পাঠান, তখন আপনি “AI অনুমান” কে “AI সহযোগিতায়” পরিণত করেন।
সুতরাং প্রণালীটি সহজ: স্পষ্ট প্রম্পট, বুদ্ধিমান গার্ডরেল, প্রথমে পরীক্ষা, ছোট লুপ। নাচকে দ্রুত করতে এক চিমটি সন্দেহ এবং Sider.AI যোগ করুন এবং আপনি উল্লেখযোগ্যভাবে কম কান্নার সাথে প্রম্পট থেকে কোড এক্সিকিউশনে যাবেন। ঠিক আছে, যদি আপনার লিন্টারকে “স্ট্রিক্ট” এ সেট করা থাকে। সেক্ষেত্রে…হয়তো এক ফোঁটা অশ্রু। শেষ কথা: আপনার সেরা প্রম্পটগুলি আপনার রেপোর একটি ফাইলে সংরক্ষণ করুন—/prompts/claude.md। এইভাবে, প্রতিটি নতুন সতীর্থ একটি দ্রুত শুরু পায়, যার মধ্যে AI ও অন্তর্ভুক্ত। ভবিষ্যত আপনি অতীত আপনাকে হাই-ফাইভ করবে এবং বর্তমান আপনি অবশেষে লাঞ্চ করতে পারবেন।
FAQ
প্রশ্ন ১: দ্রুত কার্যকরী কোড পাওয়ার জন্য সেরা ক্লড কোড টিপসগুলো কী কী?
ভার্সন সম্পর্কে সুনির্দিষ্টভাবে বলুন, ইনপুট/আউটপুট উদাহরণ দিন এবং শুরুতেই পরীক্ষা ও চালানোর নির্দেশাবলীর জন্য জিজ্ঞাসা করুন। ক্লডকে একজন সতর্ক সহকারীর মতো ব্যবহার করুন: ছোট ছোট পরিবর্তন, সঠিক ত্রুটি পেস্ট করুন এবং পুনরাবৃত্তি করুন। এই ক্লড কোড টিপসগুলো অনুমাননির্ভরতাকে কমিয়ে প্রম্পট থেকে কোড সম্পাদনে দ্রুত সাহায্য করে।
প্রশ্ন ২: ক্লড জেনারেট করা কোড আমি কীভাবে চালাবো এবং যাচাই করবো?
নির্ভরতাগুলো (dependencies) পরিষ্কারভাবে ইনস্টল করুন, লিন্ট/টেস্ট চালান, তারপর সঠিক স্টার্ট কমান্ড এবং স্যাম্পেল কার্ল ব্যবহার করে প্রম্পটটি চালান। যদি আউটপুট স্পেসিফিকেশন-এর সাথে না মেলে, তাহলে অমিলটি ক্লডে পেস্ট করুন এবং এটি ঠিক করার জন্য সামান্য পরিবর্তন করার কথা বলুন। স্পষ্ট বৈধতা পদক্ষেপগুলি ক্লডের কোডকে নির্ভরযোগ্যভাবে চলমান অ্যাপ্লিকেশনে পরিণত করে।
প্রশ্ন ৩: ক্লডকে কীভাবে এলোমেলো নির্ভরতা (dependencies) যোগ করা থেকে আটকানো যায়?
আপনার প্রম্পটে নিয়মটি উল্লেখ করুন: শুধুমাত্র স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করুন, যদি না অনুমোদিত হয়। যদি কোনো নির্ভরতা (dependency) প্রয়োজনীয় মনে হয়, তাহলে ক্লডকে থামতে বলুন এবং সুবিধা ও অসুবিধা সহ দুটি বিকল্প প্রস্তাব করতে বলুন। এই গার্ডরেইল ক্লডের কোডকে হালকা রাখে এবং অপ্রত্যাশিত ইম্পোর্ট এড়িয়ে যায়।
প্রশ্ন ৪: ক্লড কি ডিবাগিং এবং টেস্টেও সাহায্য করতে পারে?
অবশ্যই—স্ট্যাক ট্রেস, ব্যর্থ হওয়া টেস্ট এবং প্রাসঙ্গিক কোড স্লাইস পেস্ট করুন এবং সামান্য প্যাচ করার জন্য বলুন। ক্লড ইউনিট টেস্ট তৈরি করতে দারুণ, যা আচরণ নথিভুক্ত করে এবং রিগ্রেশন প্রতিরোধ করে, যা আপনার প্রম্পট-থেকে-এক্সিকিউশন লুপকে অনেক মসৃণ করে।
প্রশ্ন ৫: কোড ওয়ার্কফ্লোর জন্য ক্লডের পাশাপাশি Sider.AI কি উপযোগী?
হ্যাঁ—Sider.AI-এর পাশাপাশি কোড সেটআপের সাথে চ্যাট করার সুবিধা প্রসঙ্গ হাতের কাছে রাখে এবং সরঞ্জাম পরিবর্তনের ঝামেলা কমায়। এটি কোনো ম্যাজিক সলিউশন নয়, তবে ক্লড কোড টিপস এবং প্রম্পট-থেকে-কোড এক্সিকিউশন লুপের জন্য, এটি প্লট না হারিয়ে দ্রুত পুনরাবৃত্তি করার একটি আরামদায়ক উপায়।