xdea
ENTRY۱۴۰۵/۷/۴

پرامپت‌نویسی برای کد؛ چطور به AI بگی چی می‌خوای

پرامپت‌نویسی برای کد یعنی قبل از درخواست، زمینه و رفتار مورد انتظار رو بگی. با چند قانون ساده جواب‌های AI خیلی دقیق‌تر میشه.

پرامپت‌نویسی برای کد؛ چطور به AI بگی چی می‌خوای

جواب کوتاه: پرامپت‌نویسی برای کد (Prompting) یعنی طوری درخواستت رو بنویسی که AI حدس نزنه. پرامپت یعنی همون متنی که به AI می‌نویسی. هر چی زمینه پروژه، یک کار مشخص و رفتار مورد انتظار رو واضح‌تر بگی، کدی که می‌گیری نزدیک‌تر به چیزیه که تو ذهنت بود.

بیشتر وقت‌هایی که فکر می‌کنی «این AI بلد نیست»، مشکل از سوال بوده نه از جواب. AI صورت مسئله‌ت رو نمی‌بینه؛ فقط همون چند خطی رو می‌بینه که نوشتی.

چرا جواب‌های AI گاهی بی‌ربط درمیاد؟

فرض کن به یه نفر که تا حالا پروژه‌ت رو ندیده پیام بدی: «دکمه ثبت‌نام کار نمی‌کنه، درستش کن». اون آدم نمی‌دونه پروژه با چی نوشته شده، دکمه کجاست، الان چیکار می‌کنه و تو انتظار داری چیکار کنه.

AI هم دقیقاً همین‌جاست. وقتی اطلاعات کم باشه، جای اینکه بپرسه، حدس می‌زنه و حدسش رو با اعتماد به نفس کامل تحویلت میده. کدی می‌گیری که تمیز به نظر می‌رسه ولی برای پروژه تو نوشته نشده.

پس کار تو اینه که حدس زدن رو براش سخت کنی.

پنج قانون که جواب‌ها رو دقیق می‌کنه

۱. اول زمینه بده

قبل از درخواست، در دو سه خط بگو پروژه چیه و با چی ساخته شده: زبان و فریم‌ورک، جایی که داده‌ها نگه داشته میشن، و اینکه این تکه کد کجای پروژه‌ست.

اگه ابزارت به فایل‌های پروژه دسترسی داره، فایل مربوطه رو بهش بده. اگه نداره، همون تکه کدی که می‌خوای عوض بشه رو کپی کن توی پیام. یک تکه کد واقعی از ده خط توضیح شفاهی بهتره.

۲. هر بار یک کار

«فرم ثبت‌نام بساز، به دیتابیس وصلش کن، ایمیل تایید بفرست و صفحه پروفایل رو هم اضافه کن» یعنی چهار تا کار. جواب برای هر چهار تا نصفه‌نیمه میاد و وقتی خراب بشه نمی‌فهمی کدوم قسمت مقصره.

یکی‌یکی برو. هر بار یه چیز بخواه، امتحانش کن، بعد سراغ بعدی. این همون روشیه که تو ساخت MVP با AI از صفر تا Production هم قدم‌به‌قدم توضیح دادیم.

۳. رفتار مورد انتظار رو بنویس

نگو «درستش کن». بگو الان چی اتفاق میفته و تو دوست داری چی اتفاق بیفته:

  • الان: روی موبایل، منو بعد از کلیک باز می‌مونه.
  • انتظار: با کلیک روی هر لینک، منو بسته بشه.

همین دو خط، نصف کار رو انجام میده. حالت‌های خاص رو هم بگو: فیلد خالی باشه چی؟ کاربر دو بار کلیک کنه چی؟ اینترنت قطع باشه چی؟

۴. اول نقشه بخواه، بعد کد

برای هر تغییری که بیشتر از یه فایل رو دست می‌زنه، اول بگو: «قبل از نوشتن کد، بگو می‌خوای چیکار کنی و کدوم فایل‌ها عوض میشن.»

این یه عادت کوچیکه که خیلی وقت نجات میده. نقشه رو می‌خونی، اگه مسیرش اشتباه بود همون‌جا جلوش رو می‌گیری — نه بعد از اینکه پنج تا فایل عوض شده. اگه نقشه درست بود، بگو «خوبه، همین رو پیاده کن».

۵. خطا رو عین خودش کپی کن

وقتی چیزی کار نمی‌کنه، ننویس «خطا میده». متن کامل خطا رو از ترمینال یا کنسول مرورگر کپی کن و همون‌طور که هست بفرست، با اسم فایل و شماره خطش. بگو دقیقاً چیکار کردی که این خطا اومد.

نصفه فرستادن خطا یعنی AI باید بقیه‌ش رو حدس بزنه، و باز برمی‌گردیم سر خونه اول. درباره این مرحله جداگانه تو وقتی کدی که AI نوشته کار نمی‌کنه نوشتیم.

یه مثال: قبل و بعد

همون درخواست، دو جور نوشته شده. فرقش رو ببین:

پرامپت ضعیف:
فرم تماس با ما رو درست کن، کار نمی‌کنه.


پرامپت خوب:
پروژه: یه سایت Next.js با App Router، داده‌ها توی Postgres.
فایل: app/contact/ContactForm.tsx (کدش رو پایین گذاشتم)

الان چی میشه: فرم رو پر می‌کنم، دکمه «ارسال» رو می‌زنم،
صفحه ری‌لود میشه و هیچ پیامی نمیاد. توی کنسول مرورگر
این خطا هست:
TypeError: Cannot read properties of undefined (reading 'email')
    at handleSubmit (ContactForm.tsx:24)

انتظارم: بعد از ارسال، صفحه ری‌لود نشه، پیام «پیامت ثبت شد»
نشون داده بشه، و اگه فیلد ایمیل خالی بود زیر همون فیلد
خطا بیاد.

قبل از نوشتن کد، بگو مشکل از کجاست و می‌خوای چه فایل‌هایی
رو عوض کنی.

پرامپت دوم طولانی‌تره، ولی یه بار نوشتنش از پنج بار رفت‌وبرگشت کوتاه سریع‌تره.

یه قالب ساده که می‌تونی هر بار پر کنی

۱. پروژه: با چی ساخته شده، داده کجاست. ۲. فایل یا تکه کد: همون قسمتی که قراره عوض بشه. ۳. الان چی میشه: رفتار فعلی، با متن دقیق خطا اگه خطایی هست. ۴. انتظارم چیه: رفتار درست، به‌علاوه حالت‌های خاص. ۵. محدودیت‌ها: مثلاً «کتابخونه جدید اضافه نکن» یا «بقیه فایل‌ها رو دست نزن». ۶. اول نقشه، بعد کد.

چند اشتباه که زیاد تکرار میشه

  • پذیرفتن کد بدون خوندن. حداقل یه بار نگاه کن ببین چه فایل‌هایی عوض شدن.
  • ادامه دادن توی یه گفتگوی خیلی طولانی. وقتی بحث از موضوع دور شد، یه گفتگوی تازه با زمینه تازه شروع کن.
  • نگفتن محدودیت‌ها. اگه نگی، ممکنه برای یه کار ساده یه کتابخونه جدید اضافه کنه.
  • فرستادن کلید و رمز داخل پرامپت. تنظیمات حساس رو با xxx جایگزین کن.
  • باور کردن «درست شد» بدون امتحان. تا خودت اجرا نکردی، درست نشده.

اگه می‌خوای بدونی هر کدوم از این ابزارها برای چه کاری بهتره، استفاده از Claude، ChatGPT و Cursor در پروژه واقعی رو ببین.

سوال‌های پرتکرار

پرامپت طولانی بهتره یا کوتاه؟

نه طولانی، بلکه کامل. سه خط پرامپت که زمینه و رفتار مورد انتظار رو دقیق بگه، از یک صفحه توضیح پراکنده بهتره. حرف اضافه نزن، ولی چیزی که AI بدون اون باید حدس بزنه رو حذف نکن.

چرا AI یه چیز رو درست می‌کنه و یه چیز دیگه خراب میشه؟

چون فقط همون تکه‌ای رو می‌بینه که بهش دادی و خبر نداره جاهای دیگه پروژه به این تکه وابسته‌ان. راهش اینه که تغییرها رو کوچیک نگه داری و بعد از هر تغییر خودت امتحان کنی.

به فارسی بنویسم یا انگلیسی؟

هر دو جواب می‌ده. فارسی بنویس اگه راحت‌تری؛ فقط اسم فایل‌ها، پیام خطا و کد رو عیناً و به انگلیسی بفرست و ترجمه‌شون نکن.

اگه اصلاً برنامه‌نویسی بلد نباشم چی؟

باز هم این قانون‌ها کار می‌کنن، چون همه‌شون درباره توصیف دقیق مسئله‌ان نه درباره کد. فقط انتظار نداشته باشی کد خروجی رو بتونی داوری کنی؛ اونجا کم‌کم باید یاد بگیری یا از یه آدم بلد کمک بگیری.

خلاصه

  • AI پروژه‌ت رو نمی‌بینه؛ هر چی ندی، حدس می‌زنه.
  • قبل از درخواست، زمینه بده: زبان، فریم‌ورک، فایل، تکه کد.
  • هر بار یک کار بخواه و بعدش امتحانش کن.
  • رفتار فعلی و رفتار مورد انتظار رو جدا بنویس، و خطا رو عین خودش کپی کن.
  • برای تغییرهای بزرگ‌تر، اول نقشه بخواه و بعد بگو پیاده‌ش کنه.

بعد از اینکه کد آماده شد، مرحله بعدی بردنشه به یه جای همیشه‌روشن؛ کل اون مسیر رو تو از localhost تا Production توضیح دادیم.

MORE ENTRIES
READY WHEN YOU ARE

سایتت رو بسپار به ما

تو بساز، روشن نگه‌داشتنش با ما. راه‌اندازی، نگهداری و پشتیبانی آدم‌های واقعی.

شروع کن