نحوه درخواست از Grok 4 برای بازبینی دقیق کد و پیشنهادات تغییر ساختار
شما به کامنتهای بیشتر نیاز ندارید—به دستورات (prompt) بهتری نیاز دارید. تفاوت بین یک بازبینی کد هوش مصنوعی متوسط و یک بازبینی بسیار دقیق اغلب به نحوه سوال پرسیدن شما برمیگردد.
در این راهنمای عملی و توسعهدهنده-محور، ما گام به گام نحوه درخواست از Grok 4 را برای بازبینی دقیق کد و پیشنهادات تغییر ساختار بررسی خواهیم کرد. ما الگوهای درخواستی (prompt templates) واقعی، اشتباهات رایج و استراتژیهای پیشرفتهای را پوشش خواهیم داد که به Grok 4 کمک میکنند تا در مورد زمینه، معماری، عملکرد و قابلیت نگهداری استدلال کند—بنابراین اصلاحاتی را برمیگرداند که واقعاً میتوانید آنها را منتشر کنید.
برای اینکه مطالب کاربردی باشند، از یک ساختار مبتنی بر سوال استفاده خواهیم کرد:
- یک دستور (prompt) خوب برای بازبینی کد هوش مصنوعی چگونه است؟
- چگونه زمینه مناسب را به Grok 4 بدهیم بدون اینکه آن را غرق کنیم؟
- کدام الگوهای دستوری (prompt patterns) بهترین پیشنهادات تغییر ساختار را ارائه میدهند؟
- چگونه Grok 4 را وادار کنیم تا ملاحظات (trade-offs) را توضیح دهد، نه اینکه فقط کد را بازنویسی کند؟
- سریعترین راه برای تکرار و رسیدن به خروجی هوش مصنوعی «آماده تولید» چیست؟
در طول مسیر، دستورالعملهای آماده برای کپی و پیست کردن، مثالها و چکلیستهایی دریافت خواهید کرد که میتوانید آنها را با پشته (stack) خود تطبیق دهید.
چرا Grok 4 به دستورات (Prompts) عالی نیاز دارد (و منظور از «عالی» چیست)
Grok 4 یک مدل زبانی بزرگ توانمند با تواناییهای استدلال و کدنویسی قوی است، اما کیفیت خروجی آن ارتباط تنگاتنگی با وضوح و محدودیتهای ورودی دارد. یک دستور (prompt) عالی برای بازبینی کد یا تغییر ساختار چهار کار انجام میدهد:
- ارائه دامنه: در مورد کدام فایل، تابع یا ماژول صحبت میکنیم؟ چه چیزی خارج از محدوده است؟
- تعریف هدف: آیا در حال بهینهسازی عملکرد، بهبود خوانایی، اعمال سبک (style)، یا رفع اشکالات هستیم؟
- تامین زمینه: زبان، چارچوب، زمان اجرا، وابستگیها، محدودیتها و معیارهای پذیرش.
- درخواست شواهد: درخواست توضیحات، تجزیه و تحلیل پیچیدگی و استدلال گام به گام—نه فقط تغییرات.
وقتی به طور مداوم این عناصر را رمزگذاری میکنید، پیشنهادات بازبینی کد و تغییر ساختار Grok 4 دقیقتر، مبتنی بر واقعیت و قابل نگهداری میشوند.
الگوی طلایی دستور (Prompt) برای بازبینی کد
از این الگوی اصلی استفاده کنید، سپس آن را برای هر کار سفارشی کنید:
شما یک مهندس ارشد [{language}/{framework}] هستید که کد را برای [{project}/{domain}] بازبینی میکند.
هدف: [رفع اشکال | عملکرد | خوانایی | امنیت | تجربه توسعهدهنده (DX) | سازگاری API]
محدودیتها: [راهنمای سبک، نسخههای پشتیبانیشده، محدودیتهای حافظه/زمان، محدودیتهای کتابخانه]
زمینه:
- زمان اجرا/محیط: [Node 20, JVM 17, Python 3.11, iOS 17, etc.]
- وابستگیهای کلیدی: [لیست]
- معماری: [مونولیت، میکروسرویس، بدون سرور، شش ضلعی، و غیره]
- رابطها/قراردادهای مرتبط: [لینک یا درونخطی]
وظیفه:
1) کد زیر را برای [اهداف] بازبینی کنید.
2) مسائل خاص را با شواهد شناسایی کنید (اشاره به خطوط، تخمین پیچیدگی، موارد گوشه (edge cases)).
3) تفاوتهای (diffs) حداقلی و هدفمند پیشنهاد دهید.
4) یک نسخه نهایی تغییر ساختار یافته ارائه دهید.
5) ملاحظات (trade-offs) و خطرات را توضیح دهید.
کد:
```[{language}]
// کد را اینجا پیست کنید
فرمت خروجی:
- یافتهها: لیست گلولهای با شدت و منطق
- تفاوتها (Diffs): بلاکهای تفاوت یکپارچه (unified diff blocks)
- تغییر ساختار: بلاک کد کامل
- تستها: پیشنهادات تست واحد (مسیر خوشبینانه + موارد گوشه)
- یادداشتها: ملاحظات (trade-offs)، جایگزینها، نگرانیهای مربوط به مهاجرت
چرا کار میکند:
- نقش و اهداف را مشخص میکند.
- محدودیتها و زمینه را تعیین میکند.
- شواهد و ساختار را اجبار میکند.
- تفاوتها (diffs) + کد نهایی + تستها را تولید میکند.
---
## الگوهای شروع سریع برای سناریوهای رایج
### 1) رفع اشکال + شبکههای ایمنی
```text
به عنوان یک مهندس ارشد [{language}] عمل کنید. کد را از نظر صحت و سقم و موارد گوشه پنهان بازبینی کنید.
تمرکز: شرایط مسابقه (race conditions)، مدیریت null/None، اشتباهات یک واحدی (off-by-one)، اعتبارسنجی ورودی، انتشار خطا.
ارائه دهید: مسائل با اشاره به خطوط، تفاوتهای (diffs) حداقلی و یک تغییر ساختار ایمن با تستها.
2) مسیر داغ عملکرد (Performance hot path)
هدف: کاهش پیچیدگی زمان و حافظه بدون تغییر رفتار عمومی.
ارائه دهید: پیچیدگی فعلی، پیچیدگی پیشنهادی، بهینهسازیهای خرد در مقابل تغییرات الگوریتمی، و بنچمارکهایی برای اجرا.
3) خوانایی و قابلیت نگهداری
تغییر ساختار برای وضوح: نامگذاری بهتر، توابع کوچکتر، تکمسئولیتی.
اضافه کردن مستندات (docstrings)/JSDoc، سادهسازی جریان کنترل، حذف کد مرده. API عمومی را پایدار نگه دارید.
4) بازبینی امنیتی
مدل تهدید: ورودی غیرقابل اعتماد از [منبع].
بررسی کنید: تزریق، غیرسریالیسازی، SSRF، XSS، CSRF، احراز هویت/مجوز (authZ/authN)، مدیریت اسرار.
پیشنهاد دهید: کتابخانههای ایمن، الگوهای اعتبارسنجی و تفاوتهای (diffs) حداقلی.
5) مهاجرت چارچوبها یا SDKها
ما در حال مهاجرت از [lib A] به [lib B] هستیم.
لیستی از تغییرات مخرب تهیه کنید، یک لایه آداپتور پیشنهاد دهید و یک برنامه توسعه افزایشی با تستها ارائه دهید.
ارائه زمینه مناسب (بدون بارگذاری بیش از حد)
Grok 4 با زمینه کافی بهترین عملکرد را دارد. در اینجا مواردی وجود دارد که باید شامل شوند:
- زبان و نسخه: به عنوان مثال، Python 3.12، TypeScript 5.4.
- چارچوب/زمان اجرا: به عنوان مثال، FastAPI، Spring Boot، Node 20.
- محدودیتها: محدودیتهای حافظه/زمان، قراردادهای API، محدودیتهای وابستگی.
- رابطهای مجاور: امضاهای متد عمومی، DTOها، طرحوارهها (schemas) یا درخواستهای نمونه.
- ورودیهای نماینده: بارهای مفید واقعگرایانه، نه فقط مثالهای اسباببازی.
- راهنمای سبک: لینک یا خلاصه (PEP 8، Google Java Style، Airbnb TS).
از تخلیه کل مخازن خودداری کنید. در عوض:
- کوچکترین واحدی را به اشتراک بگذارید که مسئله را نشان میدهد.
- رابط/قراردادی را که با آن تعامل دارد اضافه کنید.
- یک تست ناموفق یا ورودی نمونهای که از کار میافتد را شامل کنید.
مثال بلاک زمینه:
محیط: Python 3.11، FastAPI، Pydantic v2.
قرارداد: نقطه پایانی باید حتی در صورت خرابیهای جزئی، کد 200 را با { data, meta } برگرداند.
محدودیت: باید ناهمزمان (async) باقی بماند؛ نمیتوان وابستگیهای سنگین جدید اضافه کرد.
ساختارهای دستوری (Prompt) که تغییر ساختارهای بهتری را باز میکنند
ساختار A: نقد ← تفاوت (Diff) ← تغییر ساختار ← تستها
بهترین حالت زمانی است که هم بردهای سریع و هم یک نتیجه نهایی تثبیتشده میخواهید.
1) نقد: لیست مسائل ملموس با شواهد.
2) تفاوت (Diff): کوچکترین تغییرات برای رفع.
3) تغییر ساختار: کد نهایی تمیز و اصطلاحی.
4) تستها: تستهای واحد پوششدهنده مسیر خوشبینانه + 3 مورد گوشه.
ساختار B: مجموعههای گزینه با ملاحظات (Trade-offs)
عالی برای تغییر ساختارهایی که به طراحی حساس هستند.
3 گزینه تغییر ساختار پیشنهاد دهید:
- گزینه A: حداقل تغییر
- گزینه B: طراحی مجدد متوسط
- گزینه C: بازنویسی کامل
برای هر کدام: مزایا/معایب، پیچیدگی، خطر، برنامه مهاجرت و زمان انتخاب آن.
ساختار C: تغییر ساختار مبتنی بر محدودیت
هنگامی که باید رفتار و بودجه را حفظ کنید، از این ساختار استفاده کنید.
محدودیتها: همان API عمومی، <50 میلیثانیه p95، <10 مگابایت حافظه اضافی، بدون وابستگیهای زمان اجرای جدید.
نشان دهید که چگونه تغییر ساختار شما هر محدودیت را با اندازهگیری یا استدلال برآورده میکند.
مثال: درخواست از Grok 4 برای بازبینی و تغییر ساختار یک نقطه پایانی پایتون
دستور (Prompt):
شما یک مهندس ارشد پایتون هستید. هدف: صحت + عملکرد.
محیط: Python 3.11، FastAPI، httpx، Pydantic v2. قرارداد: هرگز در صورت خرابی جزئی خطا ندهید.
وظیفه: بازبینی و تغییر ساختار. ارائه نقد ← تفاوتهای (diffs) حداقلی ← تغییر ساختار نهایی ← تستها.
کد:
```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 < 100 میلیثانیه تأخیر اضافه شده فراتر از بالادستیها؛ درخواستها را همزمان نگه دارید.
- اعتبارسنجی ورودی اولیه، مهلت زمانی و تلاش مجدد با لرزش (jitter) را اضافه کنید.
این دستور (prompt) به Grok 4 شغل، محافظها و شکل خروجی را میدهد—بنابراین پیشنهادات آن به راحتی قابل اعمال هستند.
---
## از پیشنهادات خام تا کد آماده انتشار: یک حلقه تکرار
با Grok 4 مانند یک برنامهنویس همکار (pair-programmer) رفتار کنید. از یک حلقه تنگ استفاده کنید:
1. با حداقل کد و محدودیتهای قابل بازتولید شروع کنید.
2. درخواست نقد + تفاوتهای (diffs) هدفمند کنید.
3. تفاوتها (diffs) را به صورت محلی اعمال کنید. تستها/بنچمارکها را اجرا کنید.
4. شکستها/خروجیها را دوباره در Grok 4 پیست کنید با این جمله: «این مورد ناموفق است؛ تنظیم کنید.»
5. محدودیتها را قفل کنید: «API عمومی را تغییر ندهید. پیچیدگی را O(n) نگه دارید.»
6. درخواست تستها و موارد مبتنی بر ویژگی کنید.
دستور (prompt) تکرار:
```text
در اینجا تستهای ناموفق و بنچمارکها وجود دارد. محدودیتهای قبلی را حفظ کنید. کوچکترین تغییری را پیشنهاد دهید که همه تستهای قرمز را بدون شکستن API عمومی برطرف کند. فقط یک تفاوت یکپارچه (unified diff) برگردانید.
ایجاد پیشنهادات تغییر ساختار قابل اجرا
از Grok 4 بخواهید که:
- هر پیشنهاد را با شدت (بالا/متوسط/پایین) و دسته (اشکال، عملکرد، سبک، امنیت) برچسبگذاری کند.
- یک منطق یک خطی برای هر پیشنهاد ارائه دهد.
- یک قطعه کد کوتاه قبل/بعد را شامل شود.
- اگر خطر تغییر مخرب وجود دارد، یک برنامه مهاجرت ارائه دهد.
افزونه دستور (Prompt):
هر پیشنهاد را با: {شدت، دسته، منطق} حاشیهنویسی کنید. قطعه کدهای قبل/بعد و یک برنامه مهاجرت یک مرحلهای را در صورت تغییر رفتار احتمالی، اضافه کنید.
امنیت، عملکرد و تست: افزونههای دستوری (Prompt) هدفمند
- «فرض کنید همه ورودیها توسط مهاجم کنترل میشوند. تزریق، SSRF، پیمایش مسیر و افشای اسرار را شناسایی کنید. الگوهای ایمن و تفاوتهای (diffs) حداقلی ارائه دهید.»
- «پیچیدگی فعلی در مقابل پیچیدگی پیشنهادی را گزارش دهید. نقاط داغ و جایگزینهای ارزانتر را برجسته کنید. یک مهار بنچمارک کوچک را شامل کنید.»
- «تستهای واحد، تستهای مبتنی بر ویژگی و موارد مرزی را پیشنهاد دهید. ماکها (mocks) را برای شبکه/ورودی-خروجی (IO) شامل کنید. پوشش مسیرهای خرابی را تضمین کنید.»
تنظیمات دستوری (Prompt) خاص زبان
- اهداف
tsconfig، محیط Node/مرورگر، حذف درخت bundler و قوانین ESLint/Prettier را مشخص کنید.
- درخواست
JSDoc/TSDoc و اتحادیههای متمایز (discriminated unions) را برای انواع ایمنتر کنید.
- به هدف
mypy، pydantic نسخه 1 در مقابل نسخه 2، همزمان در مقابل ناهمزمان و سطح راهنمایی نوع توجه کنید.
- درخواست فیکسچرهای
pytest و تستهای ویژگی از طریق hypothesis کنید.
- نسخه JDK، انتظارات تغییرناپذیری، قوانین استفاده از Lombok و استراتژی مدیریت خطا را فراخوانی کنید.
- درخواست تستهای JUnit 5 و نکات بنچمارک از طریق JMH کنید.
- بر تخصیص صفر در مسیرهای داغ، انتشار
context.Context و بستهبندی خطا با %w تأکید کنید.
- درخواست تستهای جدولمحور و فلگهای آشکارساز مسابقه کنید.
- نسخه، سیاست کد ناامن و فلگهای ویژگی را مشخص کنید. درخواست بنچمارکها و موارد
proptest کنید.
دریافت خروجی تفاوت (Diff) بهتر از Grok 4
مدلها گاهی اوقات مسیرهای فایل یا خطوط زمینه را توهم میکنند. اصطکاک را با این موارد کاهش دهید:
خروجی را به عنوان یک تفاوت یکپارچه (unified diff) با مسیرهای فایل صحیح از ریشه این مخزن برگردانید. فقط قسمتهای تغییر یافته را شامل کنید. بدون تفسیر در تفاوت (diff). سپس یک بخش جداگانه برای یادداشتها اضافه کنید.
اگر تفاوت (diff) هنوز نامرتب است، بیشتر محدود کنید:
با دقیقاً دو بلوک پاسخ دهید:
1) ```diff
...تغییرات...
- یادداشتها: لیست گلولهای.
---
## اعمال الزامات غیر عملکردی (NFRs)
اگر به تضمینهایی در مورد تأخیر، حافظه یا سازگاری نیاز دارید، آنها را در دستور (prompt) قرار دهید و از Grok 4 بخواهید که خود بررسی کند:
```text
NFRها: تأخیر p95 +< 20 میلیثانیه در مقابل خط پایه، دلتای حافظه < 5 مگابایت، هیچ وابستگی زمان اجرای جدید، همان API عمومی.
یک بخش خودآزمایی اضافه کنید که هر NFR را تأیید کند، با استدلال تقریبی یا ایدههای بنچمارک خرد.
وادار کردن Grok 4 به توضیح استدلال خود (بدون زیادهگویی)
شما فقط توضیحی میخواهید که به آن اعتماد کنید. امتحان کنید:
هر تغییر را در یک جمله با یک خط یا قطعه کد ذکر شده توضیح دهید. اگر مطمئن نیستید، به جای حدس زدن، یک سوال برای روشن شدن بپرسید.
و به صراحت اجازه سوال دهید:
اگر الزامات مبهم هستند، قبل از ادامه کار حداکثر 3 سوال برای روشن شدن بپرسید.
الگوهای ضد (Anti-Patterns): چرا دستورات (Prompts) شما ممکن است با شکست مواجه شوند
- اهداف مبهم: «لطفاً این را بهبود ببخشید.»
- محدودیتهای از دست رفته: «مطمئناً، یک وابستگی عظیم اضافه کنید و CI را خراب کنید.»
- هیچ معیار پذیرشی وجود ندارد: «روی دستگاه من خوب به نظر میرسد.»
- دیوار کد بدون زمینه: مدل نمیتواند مرزها یا قراردادها را استنباط کند.
- انتظار تکشاتی: پالایش تکراری بر دستورات (prompts) یکباره برتری دارد.
آنها را با تعریف هدف، دامنه، محدودیتها، زمینه و تستهای پذیرش برطرف کنید.
نمونه دستور (Prompt) تغییر ساختار با شکل خروجی
نقش: مهندس ارشد TypeScript.
هدف: بهبود خوانایی و ایمنی زمان اجرا بدون تغییر API عمومی.
محیط: Node 20، TypeScript 5.4، Zod برای اعتبارسنجی، ESLint Airbnb، strictNullChecks.
محدودیتها: بدون وابستگیهای زمان اجرای جدید فراتر از Zod، بدون تغییرات مخرب، حفظ پیچیدگی O(n).
وظیفه:
- نقد ← تفاوت (Diff) ← تغییر ساختار ← تستها ← یادداشتها.
- مسائل را با {شدت، دسته، منطق} برچسبگذاری کنید.
- یک طرحواره (schema) 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. بازگشتهای زودهنگام را ترجیح دهید، از تو در تویی عمیق اجتناب کنید، از انواع صریح استفاده کنید.
معماری: توابع خالص را حفظ کنید. بدون اثرات جانبی. اعتبارسنجی ورودی در مرزها.
و درخواست یک پاس لینتر (linter) کنید:
یک پاس ذهنی ESLint اجرا کنید و تخلفاتی را که انتظار دارید لیست کنید، سپس آنها را برطرف کنید.
تبدیل تغییر ساختارها به یادگیری: درخواست الگوها کنید
با درخواست از Grok 4 برای نامگذاری الگو و دلیل مناسب بودن آن، پیشرفتها را ماندگار کنید:
برای هر تغییر، الگوی تغییر ساختار را نامگذاری کنید (به عنوان مثال، استخراج تابع، معرفی شیء پارامتر) و توضیح دهید که چه زمانی باید آن را در این پایگاه کد اعمال کنید.
عیبیابی: وقتی Grok 4 به هدف نمیزند
- اگر APIها را اختراع میکند: «فقط از APIهای نشان داده شده در کد یا تأیید شده در زمینه استفاده کنید.»
- اگر بیش از حد تغییر ساختار میدهد: «ابتدا تفاوتهای (diffs) حداقلی؛ تغییر ساختار فقط در صورت لزوم.»
- اگر محدودیتها را نادیده میگیرد: «قبل از برگرداندن کد، یک خودآزمایی در برابر محدودیتها نشان دهید.»
- اگر بیش از حد پرحرف است: «فقط تفاوت (diff) و یک خلاصه 5 گلولهای را برگردانید.»
- اگر تستها ناپایدار هستند: «تستهای قطعی را پیشنهاد دهید و از ادعاهای مبتنی بر زمان اجتناب کنید.»
گردش کار واقعی: از درخواست کشش (PR) تا ادغام
- توسعهدهنده یک درخواست کشش (PR) با مصنوعات دستور (prompt) هدفمند باز میکند: هدف، محدودیتها، زمینه، تستهای پذیرش.
- تفاوت (diff) + زمینه را با الگوی طلایی در Grok 4 پیست کنید.
- تفاوتهای (diffs) حداقلی را اعمال کنید، CI را دوباره اجرا کنید.
- با گزارشهای ناموفق به عنوان بازخورد تکرار کنید.
- درخواست تغییر ساختار نهایی و تستها کنید.
- یک نظر خلاصه با ملاحظات (trade-offs) و یادداشتهای مهاجرت برای بازبینها اضافه کنید.
این کار انسانها را در کنترل نگه میدارد، در حالی که Grok 4 قسمتهای خستهکننده را تسریع میکند: تشخیص، اصلاحات کوچک و تغییر ساختارهای ساختاریافته.
به هر حال: این حلقه را با Sider.AI سرعت ببخشید
اگر گردش کار شما دستورات (prompt) چت، زمینه کد و تفاوتهای (diffs) تکراری را ترکیب میکند، شایان ذکر است که ابزارهایی مانند Sider.ai بازبینی کد هوش مصنوعی را مستقیماً در درخواستهای کشش شما ادغام میکنند و به شما امکان میدهند دستوراتی (prompts) مانند موارد بالا را با زمینه آگاه از مخزن اعمال کنید. مزیت این کار، استناد محکمتر است: واردات توهمی کمتر، مراجع خطی بهتر و تکرار سریعتر با نظرات درونخطی. دستور (prompt) پیشنهادی برای استفاده در داخل یک دستیار آگاه از مخزن:
فقط از زمینه مخزن استفاده کنید. فایلهای تغییر یافته در این درخواست کشش (PR) را برای [هدف] بازبینی کنید. یافتهها را به صورت درونخطی با شدت و منطق حاشیهنویسی کنید. تفاوتهایی (diffs) را پیشنهاد دهید که API عمومی و NFRها را حفظ کنند. فقط تستهایی را شامل کنید که مسیرهای تغییر یافته را لمس میکنند.
نکات کلیدی
- دامنه، هدف، زمینه و محدودیتها را از قبل تعریف کنید.
- درخواست نقد ← تفاوتهای (diffs) حداقلی ← تغییر ساختار ← تستها کنید تا تغییرات ایمن بمانند.
- از مجموعههای گزینه با ملاحظات (trade-offs) برای تغییرات سنگین طراحی استفاده کنید.
- NFRها را رمزگذاری کنید و از Grok 4 بخواهید که خود بررسی کند.
- به سرعت تکرار کنید: تستها را اجرا کنید، شکستها را دوباره وارد کنید، تکرار کنید.
- از ابزارهای آگاه از مخزن مانند Sider.AI برای استناد پیشنهادات در کد واقعی استفاده کنید.
مراحل بعدی
- الگوی طلایی دستور (Prompt) را در قطعههای خود ذخیره کنید.
- انواع خاص زبان را برای پشته (stack) خود بسازید.
- امروز آن را روی یک درخواست کشش (PR) کوچک امتحان کنید. اندازهگیری کنید که چند چرخه بازبینی را ذخیره میکنید.
- تستهای پذیرش را در دستورات (prompts) خود اضافه کنید تا موارد غیرقابل مذاکره را اعمال کنید.
- هنگامی که اصول اولیه ثابت شدند، به تدریج به دستورات (prompts) عملکرد و امنیت گسترش دهید.
سوالات متداول (FAQ)
پرسش ۱: بهترین روش برای درخواست بازبینی کد از Grok 4 چیست؟
از یک دستورالعمل ساختاریافته استفاده کنید که نقش، اهداف، محدودیتها، محیط و معیارهای پذیرش را تعریف کند. درخواست نقد، حداقل تغییرات (diffs)، یک بازسازی نهایی (refactor)، تستها و یک تحلیل مختصر از مصالحهها (trade-off analysis) را مطرح کنید.
پرسش ۲: چگونه میتوانم پیشنهادهای بازسازی دقیق از Grok 4 دریافت کنم؟
هدف واضحی ارائه دهید (به عنوان مثال، خوانایی یا عملکرد)، زمینه را مانند رابطها و محدودیتها درج کنید و مجموعهای از گزینهها را با مزایا و معایب درخواست کنید. الزامات غیرعملکردی را اعمال کنید و درخواست یک خودآزمایی (self-check) نمایید.
پرسش ۳: آیا باید کل ریپازیتوری (repository) را در Grok 4 کپی کنم؟
خیر. کوچکترین کد قابل بازتولید را با رابطها و محدودیتهای مرتبط به اشتراک بگذارید. دستورالعملها را متمرکز نگه دارید و با بازخورد دادن موارد شکست تست و بنچمارکها، تکرار کنید.
پرسش ۴: چگونه از تغییر APIهای عمومی توسط Grok 4 در طول بازسازیها جلوگیری کنم؟
محدودیتهای صریحی مانند «API عمومی را تغییر نده» را بیان کنید، ورودی/خروجیهای نمونه ارائه دهید و از مدل بخواهید قبل از برگرداندن کد، انطباق را با یک خودآزمایی (self-check) تأیید کند.
پرسش ۵: آیا Grok 4 میتواند تستها و بنچمارکها را پیشنهاد دهد؟
بله. از آن بخواهید که تستهای واحد (unit tests)، تستهای مبتنی بر ویژگی (property-based tests) و یک ابزار کوچک بنچمارک (benchmark harness) را درج کند. چارچوب تست (testing framework) و زمان اجرای (runtime) را مشخص کنید تا پیشنهادات قابل اجرا باقی بمانند.