কীভাবে নির্ভুল কোড রিভিউ ও রিফ্যাক্টর সাজেশনের জন্য Grok 4-কে প্রম্পট করতে হয়
আপনার বেশি কমেন্টের দরকার নেই—আপনার দরকার আরও ভালো প্রম্পট। একটি সাধারণ AI কোড রিভিউ এবং একটি ধারালো কোড রিভিউর মধ্যে পার্থক্য প্রায়শই আপনি কীভাবে জিজ্ঞাসা করছেন তার উপর নির্ভর করে।
এই ব্যবহারিক, ডেভেলপার-প্রথম গাইডটিতে, আমরা Grok 4 থেকে নির্ভুল কোড রিভিউ এবং রিফ্যাক্টর পরামর্শের জন্য কীভাবে প্রম্পট করতে হয় তা দেখাব। আমরা বাস্তব-বিশ্বের প্রম্পট টেমপ্লেট, সাধারণ ভুল এবং উন্নত কৌশলগুলি কভার করব যা Grok 4-কে প্রসঙ্গ, আর্কিটেকচার, পারফরম্যান্স এবং রক্ষণাবেক্ষণযোগ্যতা সম্পর্কে যুক্তি দিতে সহায়তা করে—যাতে এটি এমন ফিক্স ফেরত দেয় যা আপনি আসলে শিপ করতে পারেন।
বিষয়টিকে কার্যকরী রাখতে, আমরা একটি প্রশ্ন-নেতৃত্বাধীন কাঠামো ব্যবহার করব:
- একটি ভালো AI কোড রিভিউ প্রম্পট দেখতে কেমন?
- কীভাবে Grok 4-কে অপ্রতিরোধ্য না করে সঠিক প্রসঙ্গ সরবরাহ করবেন?
- কোন প্রম্পট প্যাটার্নগুলি সেরা রিফ্যাক্টর পরামর্শ দেয়?
- কীভাবে Grok 4 থেকে শুধু কোড না লিখে ট্রেড-অফ (সুবিধা-অসুবিধা) ব্যাখ্যা করতে হয়?
- কীভাবে দ্রুত "উৎপাদন-উপযোগী" AI আউটপুটের দিকে যাওয়া যায়?
এই過程中, আপনি কপি-পেস্ট করার জন্য প্রস্তুত প্রম্পট রেসিপি, উদাহরণ এবং চেকলিস্ট পাবেন যা আপনি আপনার স্ট্যাকের সাথে মানিয়ে নিতে পারেন।
Grok 4-এর কেন দারুণ প্রম্পট দরকার (এবং "দারুণ" মানে কী)
Grok 4 একটি সক্ষম বৃহৎ ভাষা মডেল যা শক্তিশালী যুক্তি এবং কোডিং ক্ষমতা সম্পন্ন, কিন্তু এর আউটপুট গুণমান ইনপুট স্পষ্টতা এবং সীমাবদ্ধতার সাথে দৃঢ়ভাবে যুক্ত। কোড রিভিউ বা রিফ্যাক্টরিংয়ের জন্য একটি দারুণ প্রম্পট চারটি কাজ করে:
- পরিধি প্রদান করে: আমরা কোন ফাইল, ফাংশন বা মডিউল নিয়ে কথা বলছি? কী কী বিষয়ে সীমাবদ্ধতা আছে?
- উদ্দেশ্য সংজ্ঞায়িত করে: আমরা কি কর্মক্ষমতা অপ্টিমাইজ করছি, পঠনযোগ্যতা উন্নত করছি, স্টাইল প্রয়োগ করছি নাকি বাগ ফিক্স করছি?
- প্রসঙ্গ সরবরাহ করে: ভাষা, ফ্রেমওয়ার্ক, রানটাইম, নির্ভরতা, সীমাবদ্ধতা এবং গ্রহণের মানদণ্ড।
- প্রমাণ দাবি করে: শুধু পরিবর্তন নয়, ব্যাখ্যা, জটিলতা বিশ্লেষণ এবং ধাপে ধাপে যুক্তির জন্য জিজ্ঞাসা করুন।
আপনি যখন ধারাবাহিকভাবে এই উপাদানগুলিকে এনকোড করেন, তখন Grok 4-এর কোড রিভিউ এবং রিফ্যাক্টর পরামর্শগুলি আরও নির্ভুল, বাস্তব এবং রক্ষণাবেক্ষণযোগ্য হয়ে ওঠে।
কোড রিভিউর জন্য সোনালী প্রম্পট প্যাটার্ন
এই মাস্টার প্যাটার্নটি ব্যবহার করুন, তারপর টাস্ক অনুযায়ী সাজিয়ে নিন:
আপনি [প্রজেক্ট/ডোমেইন]-এর জন্য কোড রিভিউ করা একজন সিনিয়র [ভাষা/ফ্রেমওয়ার্ক] প্রকৌশলী।
লক্ষ্য: [বাগ ফিক্স | কর্মক্ষমতা | পঠনযোগ্যতা | সুরক্ষা | DX | API সামঞ্জস্যতা]
সীমাবদ্ধতা: [স্টাইল গাইড, সমর্থিত সংস্করণ, মেমরি/সময় সীমা, লাইব্রেরি সীমাবদ্ধতা]
প্রসঙ্গ:
- রানটাইম/পরিবেশ: [Node 20, JVM 17, Python 3.11, iOS 17, ইত্যাদি]
- মূল নির্ভরতা: [তালিকা]
- আর্কিটেকচার: [মনোলিথ, মাইক্রোসার্ভিস, সার্ভারলেস, হেক্সাগোনাল, ইত্যাদি]
- প্রাসঙ্গিক ইন্টারফেস/চুক্তি: [লিঙ্ক বা ইনলাইন]
টাস্ক:
1) [লক্ষ্য]-এর জন্য নিম্নলিখিত কোডটি রিভিউ করুন।
2) প্রমাণ সহ নির্দিষ্ট সমস্যাগুলি চিহ্নিত করুন (লাইন রেফ, জটিলতা অনুমান, প্রান্তিক কেস)।
3) সামান্য, লক্ষ্যযুক্ত পার্থক্য প্রস্তাব করুন।
4) একটি চূড়ান্ত রিফ্যাক্টর করা সংস্করণ প্রদান করুন।
5) ট্রেড-অফ এবং ঝুঁকি ব্যাখ্যা করুন।
কোড:
```[ভাষা]
// এখানে কোড পেস্ট করুন
আউটপুট বিন্যাস:
- অনুসন্ধান: তীব্রতা এবং যুক্তি সহ বুলেট তালিকা
- পার্থক্য: ইউনিফাইড ডিফারেন্স ব্লক
- রিফ্যাক্টর: সম্পূর্ণ কোড ব্লক
- টেস্ট: ইউনিট টেস্ট পরামর্শ (শুভ পথ + প্রান্তিক কেস)
- নোট: ট্রেড-অফ, বিকল্প, স্থানান্তরের উদ্বেগ
কেন এটি কাজ করে:
- ভূমিকা এবং লক্ষ্য নির্ধারণ করে।
- সীমাবদ্ধতা এবং প্রসঙ্গ নির্ধারণ করে।
- প্রমাণ এবং কাঠামো তৈরি করে।
- পার্থক্য + চূড়ান্ত কোড + পরীক্ষা তৈরি করে।
---
## সাধারণ পরিস্থিতির জন্য দ্রুত-শুরুর টেমপ্লেট
### 1) বাগ ফিক্স + সুরক্ষা জাল
```text
একজন সিনিয়র [ভাষা] প্রকৌশলী হিসাবে কাজ করুন। সঠিকতা এবং লুকানো প্রান্তিক কেসগুলির জন্য পর্যালোচনা করুন।
ফোকাস: রেস কন্ডিশন, নাল/নন হ্যান্ডলিং, অফ-বাই-ওয়ান, ইনপুট ভ্যালিডেশন, ত্রুটি প্রচার।
লাইন রেফ, সামান্য পার্থক্য এবং পরীক্ষা সহ একটি নিরাপদ রিফ্যাক্টর প্রদান করুন।
2) পারফরম্যান্স হট পাথ
লক্ষ্য: পাবলিক আচরণ পরিবর্তন না করে সময় এবং মেমরির জটিলতা হ্রাস করা।
সরবরাহ করুন: বর্তমান জটিলতা, প্রস্তাবিত জটিলতা, মাইক্রো-অপটিমাইজেশন বনাম অ্যালগরিদমিক পরিবর্তন, এবং চালানোর জন্য বেঞ্চমার্ক।
3) পঠনযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা
স্বচ্ছতার জন্য রিফ্যাক্টর: আরও ভালো নামকরণ, ছোট ফাংশন, একক-দায়িত্ব।
ডকস্ট্রিং/জেএসডক যোগ করুন, কন্ট্রোল ফ্লো সরল করুন, ডেড কোড সরান। পাবলিক API স্থিতিশীল রাখুন।
4) নিরাপত্তা পর্যালোচনা
হুমকি মডেল: [উৎস] থেকে অবিশ্বস্ত ইনপুট।
চেক করুন: ইনজেকশন, ডেসিরিয়ালাইজেশন, SSRF, XSS, CSRF, authZ/authN, গোপনীয়তা হ্যান্ডলিং।
পরামর্শ দিন: নিরাপদ লাইব্রেরি, বৈধতা প্যাটার্ন এবং সামান্য পার্থক্য।
5) ফ্রেমওয়ার্ক বা SDK স্থানান্তর করা
আমরা [lib A] থেকে [lib B]-এ স্থানান্তরিত হচ্ছি।
ব্রেকিং পরিবর্তনগুলি তালিকাভুক্ত করুন, একটি অ্যাডাপ্টার স্তর প্রস্তাব করুন এবং পরীক্ষা সহ একটি ক্রমবর্ধমান রোলআউট পরিকল্পনা সরবরাহ করুন।
সঠিক প্রসঙ্গ সরবরাহ করুন (অতিরিক্ত লোড না করে)
Grok 4 শুধুমাত্র পর্যাপ্ত প্রসঙ্গ সহ সবচেয়ে ভালো পারফর্ম করে। এখানে কী অন্তর্ভুক্ত করতে হবে:
- ভাষা এবং সংস্করণ: যেমন, Python 3.12, TypeScript 5.4।
- ফ্রেমওয়ার্ক/রানটাইম: যেমন, FastAPI, Spring Boot, Node 20।
- সীমাবদ্ধতা: মেমরি/সময় সীমা, API চুক্তি, নির্ভরতা সীমাবদ্ধতা।
- সংলগ্ন ইন্টারফেস: পাবলিক মেথড সিগনেচার, DTOs, স্কিমা বা নমুনার অনুরোধ।
- প্রতিনিধিত্বকারী ইনপুট: বাস্তবসম্মত পেলোড, শুধুমাত্র খেলনা উদাহরণ নয়।
- স্টাইল গাইড: লিঙ্ক করুন বা সারসংক্ষেপ করুন (PEP 8, Google Java Style, Airbnb TS)।
পুরো সংগ্রহস্থল ডাম্প করা এড়িয়ে চলুন। পরিবর্তে:
- সবচেয়ে ছোট ইউনিটটি শেয়ার করুন যা সমস্যাটি প্রদর্শন করে।
- যে ইন্টারফেস/চুক্তির সাথে এটি যোগাযোগ করে তা যোগ করুন।
- একটি ব্যর্থ পরীক্ষা বা নমুনা ইনপুট অন্তর্ভুক্ত করুন যা ভেঙে যায়।
উদাহরণ প্রসঙ্গ ব্লক:
পরিবেশ: Python 3.11, FastAPI, Pydantic v2।
চুক্তি: আংশিক ব্যর্থতাতেও { data, meta } সহ এন্ডপয়েন্টকে অবশ্যই 200 ফেরত দিতে হবে।
সীমাবদ্ধতা: অবশ্যই অ্যাসিঙ্ক থাকতে হবে; নতুন ভারী নির্ভরতা যোগ করা যাবে না।
প্রম্পট স্ট্রাকচার যা আরও ভালো রিফ্যাক্টর আনলক করে
স্ট্রাকচার A: সমালোচনা → পার্থক্য → রিফ্যাক্টর → পরীক্ষা
সেরা যখন আপনি দ্রুত জয় এবং একটি চূড়ান্ত একত্রিত ফলাফল উভয়ই চান।
1) সমালোচনা: প্রমাণ সহ কংক্রিট সমস্যাগুলির তালিকা করুন।
2) পার্থক্য: সমাধানের জন্য ক্ষুদ্রতম পরিবর্তন।
3) রিফ্যাক্টর: পরিষ্কার, ইডিওমেটিক চূড়ান্ত কোড।
4) পরীক্ষা: সুখী পথ + 3 প্রান্তিক কেস কভার করে ইউনিট পরীক্ষা।
স্ট্রাকচার B: ট্রেড-অফ সহ বিকল্প সেট
ডিজাইন-সংবেদনশীল রিফ্যাক্টরের জন্য দারুণ।
3টি রিফ্যাক্টর বিকল্প প্রস্তাব করুন:
- বিকল্প A: ন্যূনতম পরিবর্তন
- বিকল্প B: মাঝারি পুনরায় ডিজাইন
- বিকল্প C: সম্পূর্ণ পুনরায় লেখা
প্রত্যেকের জন্য: সুবিধা/অসুবিধা, জটিলতা, ঝুঁকি, স্থানান্তর পরিকল্পনা এবং কখন এটি চয়ন করতে হবে।
স্ট্রাকচার C: সীমাবদ্ধতা-চালিত রিফ্যাক্টর
ব্যবহার করুন যখন আপনাকে অবশ্যই আচরণ এবং বাজেট সংরক্ষণ করতে হবে।
সীমাবদ্ধতা: একই পাবলিক API, <50ms p95, <10MB অতিরিক্ত মেমরি, কোনো নতুন রানটাইম নির্ভরতা নয়।
দেখান কিভাবে আপনার রিফ্যাক্টর প্রতিটি সীমাবদ্ধতা পরিমাপ বা যুক্তির সাথে পূরণ করে।
উদাহরণ: Grok 4 কে একটি পাইথন এন্ডপয়েন্ট রিভিউ এবং রিফ্যাক্টর করতে বলা
প্রম্পট:
আপনি একজন সিনিয়র পাইথন প্রকৌশলী। লক্ষ্য: সঠিকতা + কর্মক্ষমতা।
পরিবেশ: Python 3.11, FastAPI, httpx, Pydantic v2. চুক্তি: আংশিক ব্যর্থতায় কখনই বাড়াবেন না।
টাস্ক: রিভিউ এবং রিফ্যাক্টর। সমালোচনা → সামান্য পার্থক্য → চূড়ান্ত রিফ্যাক্টর → পরীক্ষা প্রদান করুন।
কোড:
```python
from fastapi import APIRouter
import httpx
router = APIRouter
@router.get("/users/{user_id}")
async def get_user(user_id: str):
async with httpx.AsyncClient as client:
profile = await client.get(f")
posts = await client.get(f")
return {"data": {"profile": profile.json, "posts": posts.json}}
গ্রহণযোগ্যতা:
- কোনো কল থেকে নন-200 বাড়ানো ছাড়াই পরিচালনা করুন।
- আপস্ট্রিমগুলির বাইরে p95 < 100ms অতিরিক্ত লেটেন্সি যোগ করা হয়েছে; অনুরোধগুলি একই সাথে রাখুন।
- বেসিক ইনপুট ভ্যালিডেশন, টাইমআউট এবং জিটার সহ পুনরায় চেষ্টা যোগ করুন।
এই প্রম্পট Grok 4-কে কাজ, সুরক্ষার নিয়ম এবং আউটপুটের আকার দেয়—তাই এর পরামর্শগুলি প্রয়োগ করা সহজ।
---
## অপরিশোধিত পরামর্শ থেকে শিপ-রেডি কোড: একটি পুনরাবৃত্তি লুপ
Grok 4-কে একজন সহকর্মী প্রোগ্রামার হিসাবে বিবেচনা করুন। একটি টাইট লুপ ব্যবহার করুন:
1. ন্যূনতম পুনরুত্পাদনযোগ্য কোড এবং সীমাবদ্ধতা দিয়ে শুরু করুন।
2. সমালোচনা + লক্ষ্যযুক্ত পার্থক্যের জন্য জিজ্ঞাসা করুন।
3. স্থানীয়ভাবে পার্থক্য প্রয়োগ করুন; পরীক্ষা/বেঞ্চমার্ক চালান।
4. ব্যর্থতা/আউটপুট Grok 4-এ ফেরত পেস্ট করুন: "এখানে ব্যর্থ হওয়ার ঘটনা; সামঞ্জস্য করুন।"
5. সীমাবদ্ধতা লক করুন: "পাবলিক API পরিবর্তন করবেন না। জটিলতা O(n) রাখুন।"
6. পরীক্ষা এবং সম্পত্তি-ভিত্তিক কেসগুলির জন্য জিজ্ঞাসা করুন।
পুনরাবৃত্তি প্রম্পট:
```text
এখানে পরীক্ষার ব্যর্থতা এবং বেঞ্চমার্ক রয়েছে। পূর্ববর্তী সীমাবদ্ধতা রাখুন। পাবলিক API না ভেঙে সমস্ত লাল পরীক্ষা ঠিক করার জন্য সবচেয়ে ছোট পরিবর্তন প্রস্তাব করুন। শুধুমাত্র একটি ইউনিফাইড পার্থক্য ফেরত দিন।
রিফ্যাক্টর প্রস্তাবগুলিকে কার্যকরী করা
Grok 4 কে জিজ্ঞাসা করুন:
- তীব্রতা (উচ্চ/মাঝারি/নিম্ন) এবং বিভাগ (বাগ, পারফরম্যান্স, স্টাইল, নিরাপত্তা) সহ প্রতিটি পরামর্শ ট্যাগ করুন।
- প্রতিটি পরামর্শের জন্য একটি ওয়ান-লাইন যুক্তি প্রদান করুন।
- একটি দ্রুত আগে/পরে স্নিপেট অন্তর্ভুক্ত করুন।
- যদি কোনও ব্রেকিং পরিবর্তনের ঝুঁকি থাকে তবে একটি স্থানান্তর পরিকল্পনা সরবরাহ করুন।
প্রম্পট অ্যাড-অন:
প্রতিটি পরামর্শকে এইগুলো দিয়ে টীকা করুন: {তীব্রতা, বিভাগ, যুক্তি}। আগে/পরে স্নিপেট এবং আচরণের পরিবর্তন হতে পারে এমন একটি এক-ধাপের স্থানান্তর পরিকল্পনা অন্তর্ভুক্ত করুন।
নিরাপত্তা, কর্মক্ষমতা এবং পরীক্ষা: লক্ষ্যযুক্ত প্রম্পট অ্যাড-অন
- "ধরে নিন সমস্ত ইনপুট আক্রমণকারী-নিয়ন্ত্রিত। ইনজেকশন, SSRF, পাথ ট্র্যাভার্সাল এবং সিক্রেট এক্সপোজার চিহ্নিত করুন। নিরাপদ প্যাটার্ন এবং সামান্য পার্থক্য প্রদান করুন।"
- "বর্তমান বনাম প্রস্তাবিত জটিলতা রিপোর্ট করুন। হটস্পট এবং সস্তা বিকল্প হাইলাইট করুন। একটি ছোট বেঞ্চমার্ক জোতা অন্তর্ভুক্ত করুন।"
- "ইউনিট পরীক্ষা, সম্পত্তি-ভিত্তিক পরীক্ষা এবং সীমানা কেস প্রস্তাব করুন। নেটওয়ার্ক/IO-এর জন্য মক অন্তর্ভুক্ত করুন। ব্যর্থতার পথ কভারেজ নিশ্চিত করুন।"
ভাষা-নির্দিষ্ট প্রম্পট টুইক
- নির্দিষ্ট করুন
tsconfig টার্গেট, Node/ব্রাউজার পরিবেশ, বান্ডলার ট্রি-শেকিং, এবং ESLint/Prettier নিয়ম।
- নিরাপদ ধরনের জন্য
JSDoc/TSDoc এবং ডিসক্রিমিনেটেড ইউনিয়নগুলির জন্য জিজ্ঞাসা করুন।
- লক্ষ্য করুন
mypy টার্গেট, pydantic v1 বনাম v2, সিঙ্ক বনাম অ্যাসিঙ্ক, এবং টাইপ হিন্টস লেভেল।
pytest ফিক্সচার এবং hypothesis এর মাধ্যমে সম্পত্তি পরীক্ষার জন্য অনুরোধ করুন।
- JDK সংস্করণ, অপরিবর্তনীয়তার প্রত্যাশা, Lombok ব্যবহারের নিয়ম এবং ত্রুটি-হ্যান্ডলিং কৌশল কল করুন।
- JMH এর মাধ্যমে JUnit 5 পরীক্ষা এবং বেঞ্চমার্ক হিন্টসের জন্য জিজ্ঞাসা করুন।
- হট পাথগুলিতে জিরো অ্যালোকেশন,
context.Context প্রচার এবং %w সহ ত্রুটি মোড়ানোর উপর জোর দিন।
- টেবিল-চালিত পরীক্ষা এবং রেস ডিটেক্টর ফ্ল্যাগের জন্য জিজ্ঞাসা করুন।
- সংস্করণ, অনিরাপদ কোড নীতি এবং বৈশিষ্ট্য পতাকা নির্দিষ্ট করুন। বেঞ্চমার্ক এবং
proptest কেসের জন্য অনুরোধ করুন।
Grok 4 থেকে আরও ভালো পার্থক্য আউটপুট পাওয়া
মডেলগুলি কখনও কখনও ফাইলের পথ বা প্রসঙ্গ লাইন হ্যালুসিনেট করে। এর মাধ্যমে ঘর্ষণ কমান:
এই রেপো রুট থেকে সঠিক ফাইলের পথ সহ একটি ইউনিফাইড পার্থক্য হিসাবে আউটপুট ফেরত দিন। শুধুমাত্র পরিবর্তিত হাঙ্ক অন্তর্ভুক্ত করুন। পার্থক্যতে কোনও ভাষ্য নয়। তারপর নোটের জন্য একটি আলাদা বিভাগ অন্তর্ভুক্ত করুন।
যদি পার্থক্য এখনও অগোছালো হয়, তাহলে আরও সীমাবদ্ধ করুন:
ঠিক দুটি ব্লক দিয়ে সাড়া দিন:
1) ```diff
...পরিবর্তন...
---
## নন-ফাংশনাল প্রয়োজনীয়তা (NFRs) প্রয়োগ করা
আপনার যদি লেটেন্সি, মেমরি বা সামঞ্জস্যের আশেপাশে গ্যারান্টিগুলির প্রয়োজন হয় তবে সেগুলি প্রম্পটে রাখুন এবং Grok 4 কে স্ব-চেক করতে বলুন:
```text
NFRs: বেসলাইনের তুলনায় p95 লেটেন্সি +< 20ms, মেমরি ডেল্টা < 5MB, জিরো নতুন রানটাইম নির্ভরতা, একই পাবলিক API।
প্রতিটি NFR নিশ্চিত করে একটি স্ব-চেক বিভাগ যোগ করুন, মোটামুটি যুক্তি বা মাইক্রোবেঞ্চ ধারণা সহ।
Grok 4-কে এর যুক্তি ব্যাখ্যা করতে বলুন (অত্যধিক ভার্বোস না হয়ে)
আপনি পরামর্শ বিশ্বাস করার জন্য যথেষ্ট ব্যাখ্যা চান। চেষ্টা করুন:
একটি উদ্ধৃত লাইন বা স্নিপেট দিয়ে প্রতিটি পরিবর্তন এক বাক্যে ব্যাখ্যা করুন। অনিশ্চিত হলে, অনুমান করার পরিবর্তে একটি স্পষ্টীকরণ প্রশ্ন জিজ্ঞাসা করুন।
এবং স্পষ্টভাবে প্রশ্ন করার অনুমতি দিন:
যদি প্রয়োজনীয়তা অস্পষ্ট হয়, তাহলে এগিয়ে যাওয়ার আগে 3টি পর্যন্ত স্পষ্টীকরণ প্রশ্ন জিজ্ঞাসা করুন।
অ্যান্টি-প্যাটার্ন: কেন আপনার প্রম্পট ব্যর্থ হতে পারে
- অস্পষ্ট লক্ষ্য: "অনুগ্রহ করে এটি উন্নত করুন।"
- হারানো সীমাবদ্ধতা: "অবশ্যই, একটি বিশাল নির্ভরতা যোগ করুন এবং CI ভেঙে দিন।"
- গ্রহণের মানদণ্ড নেই: "আমার মেশিনে ঠিক দেখাচ্ছে।"
- প্রসঙ্গ ছাড়া কোডের প্রাচীর: মডেলটি সীমানা বা চুক্তি অনুমান করতে পারে না।
- একক-শট প্রত্যাশা: পুনরাবৃত্তিমূলক পরিমার্জন এককালীন প্রম্পটকে হার মানায়।
লক্ষ্য, পরিধি, সীমাবদ্ধতা, প্রসঙ্গ এবং গ্রহণের পরীক্ষা সংজ্ঞায়িত করে সেগুলি ঠিক করুন।
আউটপুট আকার সহ নমুনা রিফ্যাক্টর প্রম্পট
ভূমিকা: সিনিয়র টাইপস্ক্রিপ্ট প্রকৌশলী।
লক্ষ্য: পাবলিক API পরিবর্তন না করে পঠনযোগ্যতা এবং রানটাইম নিরাপত্তা উন্নত করা।
পরিবেশ: Node 20, TypeScript 5.4, যাচাইকরণের জন্য Zod, ESLint Airbnb, strictNullChecks।
সীমাবদ্ধতা: Zod এর বাইরে কোনও নতুন রানটাইম নির্ভরতা নয়, কোনও ব্রেকিং পরিবর্তন নয়, O(n) জটিলতা বজায় রাখুন।
টাস্ক:
- সমালোচনা → পার্থক্য → রিফ্যাক্টর → পরীক্ষা → নোট।
- {তীব্রতা, বিভাগ, যুক্তি} সহ সমস্যা ট্যাগ করুন।
- ইনপুট যাচাইকরণের জন্য একটি Zod স্কিমা এবং 4টি ইউনিট পরীক্ষা অন্তর্ভুক্ত করুন।
কোড:
```ts
export function parseUser(raw: any) {
if (!raw) return null
return {
id: raw.id || '0',
name: raw.name || 'Unknown',
age: parseInt(raw.age),
}
}
---
## Grok 4 কে স্টাইল এবং আর্কিটেকচারকে সম্মান করতে বাধ্য করা
কংক্রিট নিয়ম দিয়ে মডেলটিকে অ্যাঙ্কর করুন:
```text
স্টাইল: Airbnb TS। প্রথম দিকের রিটার্ন পছন্দ করুন, গভীর নেস্টিং এড়িয়ে চলুন, সুস্পষ্ট প্রকার ব্যবহার করুন।
আর্কিটেকচার: বিশুদ্ধ ফাংশন রাখুন; কোনও পার্শ্ব প্রতিক্রিয়া নয়। সীমানাতে ইনপুট যাচাইকরণ।
এবং একটি লিন্টার পাসের জন্য জিজ্ঞাসা করুন:
একটি মানসিক ESLint পাস চালান এবং আপনি যে লঙ্ঘনগুলি আশা করবেন তার তালিকা করুন, তারপর সেগুলি ঠিক করুন।
রিফ্যাক্টরগুলিকে শিক্ষণে পরিণত করুন: প্যাটার্নের জন্য জিজ্ঞাসা করুন
Grok 4 কে প্যাটার্নের নাম দিতে এবং কেন এটি উপযুক্ত তা জিজ্ঞাসা করে উন্নতিগুলিকে আটকে দিন:
প্রতিটি পরিবর্তনের জন্য, রিফ্যাক্টরিং প্যাটার্নের নাম দিন (যেমন, এক্সট্র্যাক্ট ফাংশন, প্যারামিটার অবজেক্ট প্রবর্তন করুন) এবং এই কোডবেসে কখন এটি প্রয়োগ করতে হবে তা ব্যাখ্যা করুন।
সমস্যা সমাধান: যখন Grok 4 নিশানা ভেদ করতে ব্যর্থ হয়
- যদি এটি API উদ্ভাবন করে: "শুধুমাত্র কোডে দেখানো বা প্রেক্ষাপটে নিশ্চিত করা API ব্যবহার করুন।"
- যদি এটি অতিরিক্ত-রিফ্যাক্টর করে: "প্রথমে সামান্য পার্থক্য; শুধুমাত্র প্রয়োজন হলেই রিফ্যাক্টর করুন।"
- যদি এটি সীমাবদ্ধতা উপেক্ষা করে: "কোড ফেরত দেওয়ার আগে সীমাবদ্ধতার বিপরীতে একটি স্ব-চেক দেখান।"
- যদি এটি খুব ভার্বোস হয়: "শুধুমাত্র পার্থক্য এবং একটি 5-বুলেট সারসংক্ষেপ ফেরত দিন।"
- যদি পরীক্ষাগুলি ফ্ল্যাকি হয়: "নিয়মিত পরীক্ষা প্রস্তাব করুন এবং সময়-ভিত্তিক দাবী এড়িয়ে চলুন।"
বাস্তব-বিশ্বের ওয়ার্কফ্লো: PR থেকে মার্জ
- ডেভেলপার লক্ষ্য, সীমাবদ্ধতা, প্রেক্ষাপট, গ্রহণের পরীক্ষা সহ লক্ষ্যযুক্ত প্রম্পট আর্টিফ্যাক্ট সহ একটি PR খোলেন।
- সোনালী প্যাটার্ন সহ Grok 4-এ পার্থক্য + প্রসঙ্গ পেস্ট করুন।
- সামান্য পার্থক্য প্রয়োগ করুন, CI পুনরায় চালান।
- ব্যর্থ লগগুলিকে প্রতিক্রিয়া হিসাবে ব্যবহার করে পুনরাবৃত্তি করুন।
- চূড়ান্ত রিফ্যাক্টর এবং পরীক্ষার জন্য অনুরোধ করুন।
- পর্যালোচকদের জন্য ট্রেড-অফ এবং স্থানান্তর নোট সহ একটি সারসংক্ষেপ মন্তব্য যোগ করুন।
এটি মানুষকে নিয়ন্ত্রণে রাখে, যেখানে Grok 4 ক্লান্তিকর অংশগুলিকে ত্বরান্বিত করে: সনাক্তকরণ, ছোট ফিক্স এবং কাঠামোগত রিফ্যাক্টর।
যাইহোক: Sider.AI দিয়ে এই লুপটি দ্রুত করুন
যদি আপনার ওয়ার্কফ্লো চ্যাট প্রম্পট, কোড প্রসঙ্গ এবং পুনরাবৃত্তিমূলক পার্থক্য মিশ্রিত করে, তবে এটি লক্ষণীয় যে Sider.ai এর মতো সরঞ্জামগুলি AI কোড পর্যালোচনা সরাসরি আপনার পুল অনুরোধগুলিতে সংহত করে, আপনাকে সংগ্রহস্থল-সচেতন প্রসঙ্গ সহ উপরেরগুলির মতো প্রম্পট প্রয়োগ করতে দেয়। সুবিধা হল টাইটার গ্রাউন্ডিং: কম হ্যালুসিনেটেড ইম্পোর্ট, আরও ভাল লাইন রেফারেন্স এবং ইনলাইন মন্তব্য সহ দ্রুত পুনরাবৃত্তি। একটি রেপো-সচেতন সহকারীর ভিতরে ব্যবহার করার জন্য প্রস্তাবিত প্রম্পট:
শুধুমাত্র রেপো প্রসঙ্গ ব্যবহার করুন। [লক্ষ্য]-এর জন্য এই PR-এ পরিবর্তিত ফাইলগুলি পর্যালোচনা করুন। তীব্রতা এবং যুক্তি সহ অনুসন্ধানগুলি ইনলাইন টীকা করুন। পাবলিক API এবং NFRs সংরক্ষণ করে এমন পার্থক্য প্রস্তাব করুন। শুধুমাত্র পরিবর্তিত পাথ স্পর্শ করে এমন পরীক্ষা অন্তর্ভুক্ত করুন।
মূল বিষয়গুলি
- অগ্রিম পরিধি, উদ্দেশ্য, প্রসঙ্গ এবং সীমাবদ্ধতা সংজ্ঞায়িত করুন।
- পরিবর্তনগুলি নিরাপদ রাখতে সমালোচনা → সামান্য পার্থক্য → রিফ্যাক্টর → পরীক্ষার জন্য জিজ্ঞাসা করুন।
- ডিজাইন-ভারী পরিবর্তনের জন্য ট্রেড-অফ সহ বিকল্প সেট ব্যবহার করুন।
- NFR এনকোড করুন এবং Grok 4 কে স্ব-চেক করতে বলুন।
- দ্রুত পুনরাবৃত্তি করুন: পরীক্ষা চালান, ব্যর্থতা ফেরত দিন, পুনরাবৃত্তি করুন।
- বাস্তব কোডে পরামর্শ গ্রাউন্ড করতে Sider.AI এর মতো রেপো-সচেতন সরঞ্জাম ব্যবহার করুন।
পরবর্তী পদক্ষেপ
- সোনালী প্রম্পট প্যাটার্নটি আপনার স্নিপেটে সংরক্ষণ করুন।
- আপনার স্ট্যাকের জন্য ভাষা-নির্দিষ্ট রূপ তৈরি করুন।
- আজই একটি ছোট PR-এ চেষ্টা করুন; পরিমাপ করুন আপনি কতগুলি পর্যালোচনা চক্র বাঁচান।
- অ-আলোচনাযোগ্যগুলি প্রয়োগ করতে আপনার প্রম্পটে গ্রহণের পরীক্ষা যোগ করুন।
- একবার বেসিকগুলি আটকে গেলে ধীরে ধীরে কর্মক্ষমতা এবং সুরক্ষা প্রম্পটে প্রসারিত করুন।
FAQ
Q1: Grok 4 কে কোড রিভিউয়ের জন্য কীভাবে সবচেয়ে ভালভাবে প্রম্পট করা যায়?
একটি কাঠামোবদ্ধ প্রম্পট ব্যবহার করুন যা ভূমিকা, লক্ষ্য, সীমাবদ্ধতা, পরিবেশ এবং গ্রহণযোগ্যতার মানদণ্ড নির্ধারণ করে। সমালোচনা, ন্যূনতম পার্থক্য, চূড়ান্ত রিফ্যাক্টর, টেস্ট এবং সংক্ষিপ্ত ট্রেড-অফ বিশ্লেষণ চাওয়া উচিত।
Q2: Grok 4 থেকে কীভাবে সুনির্দিষ্ট রিফ্যাক্টর প্রস্তাবনা পাওয়া যায়?
পরিষ্কার উদ্দেশ্য দিন (যেমন পড়ার সহজতা বা কর্মক্ষমতা), ইন্টারফেস এবং সীমাবদ্ধতা সহ প্রসঙ্গ অন্তর্ভুক্ত করুন, এবং সুবিধা ও অসুবিধাসহ বিকল্প সেট চাইুন। অকার্যকরী চাহিদা প্রয়োগ করুন এবং স্ব-মূল্যায়ন চাইুন।
Q3: আমি কি পুরো রিপোজিটরি Grok 4 তে পেস্ট করব?
না। সবচেয়ে ছোট পুনরুত্পাদনযোগ্য কোড শেয়ার করুন যা প্রাসঙ্গিক ইন্টারফেস এবং সীমাবদ্ধতা নিয়ে গঠিত। প্রম্পটগুলোকে কেন্দ্রীভূত রাখুন এবং টেস্ট ব্যর্থতা ও বেঞ্চমার্ক ফিডব্যাক দিয়ে পুনরাবৃত্তি করুন।
Q4: রিফ্যাক্টর করার সময় Grok 4 কে পাবলিক API পরিবর্তন থেকে কীভাবে রোধ করবেন?
স্পষ্ট সীমাবদ্ধতা যেমন “পাবলিক API পরিবর্তন করবেন না” উল্লেখ করুন, ইনপুট/আউটপুট উদাহরণ দিন, এবং কোড রিটার্নের আগে মডেলকে স্ব-মূল্যায়ন করে সম্মতি নিশ্চিত করতে বলুন।
Q5: Grok 4 কি টেস্ট ও বেঞ্চমার্ক প্রস্তাব দিতে পারে?
হ্যাঁ। ইউনিট টেস্ট, প্রপার্টি-ভিত্তিক টেস্ট এবং একটি ছোট বেঞ্চমার্ক হার্নেস অন্তর্ভুক্ত করতে বলুন। পরীক্ষার ফ্রেমওয়ার্ক ও রানটাইম নির্দিষ্ট করলে প্রস্তাবনাগুলো চালাতে সুবিধা হয়।