ساخت اپلیکیشن با Vibe Coding؛ پروژه عملی از ایده تا انتشار
اگر تا حالا ایدهٔ یک وباپ ساده داشتهاید ولی جلوتر از «اسکچ روی کاغذ» نرفتهاید، وایب کدینگ دقیقاً برای همین …
هوش مصنوعی امروز میتواند در چند ثانیه یک API کامل، یک تست یا یک اسکریپت مهاجرت دیتابیس بنویسد؛ اما کیفیت خروجی تقریباً همیشه به یک چیز بستگی دارد: پرامپت شما. «یک لاگین بنویس» با «یک ویوی لاگین در Django 5 بنویس که از فرم موجود استفاده کند، rate limit داشته باشد و تست واحد هم داشته باشد» دو کد کاملاً متفاوت تحویل میدهد. در این مقاله اصول پرامپتنویسی برای برنامهنویسها را از راهنماهای رسمی Anthropic و OpenAI خلاصه کردهایم و ۲۵ پرامپت آماده برای نوشتن کد، دیباگ، تست، ریفکتور و مستندسازی آوردهایم که میتوانید همین الان کپی کنید.
این پرامپتها با ChatGPT، Claude، Gemini و ایجنتهایی مثل Claude Code کار میکنند. اگر هنوز ابزارتان را انتخاب نکردهاید، اول بهترین هوش مصنوعی برای برنامهنویسی را ببینید.
آخرین بهروزرسانی: ۹ آبان ۱۴۰۵ — اصول این مقاله از راهنماهای رسمی پرامپتنویسی Anthropic و OpenAI و Prompt Engineering Guide برداشته شده است. پرامپتها را تحریریهٔ رادینو برای کارهای روزمرهٔ Python، Django و Java نوشته است.
⚡ پاسخ کوتاه
پرامپت خوب برنامهنویسی پنج جزء دارد: نقش، زمینهٔ پروژه، وظیفهٔ دقیق، محدودیتها و قالب خروجی. نسخهٔ زبان، فریمورک، کد مرتبط و خطای کامل را بدهید، دلیل خواستهتان را بگویید، اول نقشه بخواهید و بعد کد، و همیشه تست و بازبینی امنیتی را جزو درخواست بگذارید. ۲۵ پرامپت آمادهٔ این مقاله برای نوشتن کد، دیباگ، تست، ریفکتور و مستندسازی دستهبندی شدهاند.
📑 فهرست مطالب
مدل زبانی ذهن شما را نمیخواند. Anthropic در راهنمای رسمیاش میگوید Claude را مثل «یک کارمند تازهوارد بسیار باهوش» ببینید که از قواعد و روال کار شما خبر ندارد؛ هرچه دقیقتر توضیح دهید، نتیجه بهتر میشود. در کدنویسی این موضوع دوچندان مهم است، چون مدل وقتی اطلاعات کافی ندارد، جای خالی را با حدس پر میکند: نسخهٔ قدیمی کتابخانه، نام تابعی که وجود ندارد یا الگویی که با بقیهٔ پروژه نمیخواند.
نتیجهٔ پرامپت مبهم معمولاً کدی است که «به نظر درست میآید» ولی اجرا نمیشود یا باگ پنهان دارد. دربارهٔ این خطاها در مقالهٔ توهم هوش مصنوعی بیشتر توضیح دادهایم و امنیت کد تولیدشده با هوش مصنوعی هم نشان میدهد چرا نباید خروجی را بدون بازبینی مرج کرد.

<code> و خطا را داخل <error> بگذارید.قالب پایهای که بیشتر پرامپتهای این مقاله بر آن ساخته شدهاند:
قالب پایه
نقش: تو یک برنامهنویس ارشد [Python/Django] هستی. زمینه: پروژهٔ من [توضیح کوتاه] است؛ نسخهها: [Python 3.12، Django 5.x، PostgreSQL]. <code> [کد مرتبط] </code> وظیفه: [دقیقاً چه میخواهید]. محدودیتها: کتابخانهٔ جدید اضافه نکن، با سبک کد موجود هماهنگ باش، مقدارها را hard-code نکن. خروجی: اول نقشهٔ کوتاه، بعد کد کامل، بعد فهرست تستهایی که باید اجرا کنم.
پرامپت ۱ — اول نقشه، بعد کد
میخواهم [قابلیت] را به پروژه اضافه کنم. هنوز کد ننویس. اول فایلهایی که باید تغییر کنند، مراحل کار و ریسکها را فهرست کن. بعد از تأیید من، کد را بنویس.
پرامپت ۲ — ساخت API در Django
در Django 5 و Django REST Framework یک endpoint برای [مدل] بساز: لیست با صفحهبندی، فیلتر بر اساس [فیلد]، و دسترسی فقط برای کاربر واردشده. serializer، view و url را جدا بنویس و برای هر کدام توضیح یکخطی بده.
پرامپت ۳ — تابع با شرطهای مرزی
یک تابع Python بنویس که [کار]. ورودیهای نامعتبر، لیست خالی و مقدار None را مدیریت کن. type hint و docstring بگذار و در آخر ۵ ورودی مرزی را که باید تست کنم نام ببر.
پرامپت ۴ — کلاس Java با اصول SOLID
یک کلاس Java 21 برای [کار] بنویس که اصل Single Responsibility را رعایت کند. وابستگیها را از طریق constructor تزریق کن تا قابل تست باشد. اگر طراحی بهتری سراغ داری، قبل از کد پیشنهاد بده.
پرامپت ۵ — کوئری بهینهٔ دیتابیس
این کوئری ORM کند است: <code>[کد]</code> جدول [نام] حدود [تعداد] ردیف دارد. مشکل N+1 یا ایندکسهای لازم را پیدا کن و نسخهٔ بهینه را با select_related یا prefetch_related بنویس. دلیل هر تغییر را بگو.
پرامپت ۶ — تبدیل توضیح به کد
این نیازمندی کسبوکار را به کد تبدیل کن: «[نیازمندی به زبان ساده]». اگر جایی مبهم است، قبل از نوشتن کد حداکثر ۳ سؤال بپرس.
در دیباگ، مهمترین چیز خطای کامل است، نه خلاصهٔ آن. traceback کامل، نسخهها و کاری که انتظار داشتید را بدهید. دربارهٔ اینکه هوش مصنوعی چطور زمان دیباگ را کم میکند، این مقاله را هم ببینید.
پرامپت ۷ — تحلیل traceback
این خطا را میگیرم: <error>[traceback کامل]</error> <code>[تابع مرتبط]</code> انتظار داشتم [رفتار درست]. سه علت محتمل را به ترتیب احتمال بگو و برای هر کدام یک راه بررسی بده. هنوز کد را تغییر نده.
پرامپت ۸ — باگ بدون خطا
این تابع خطا نمیدهد ولی خروجیاش برای ورودی [مثال] اشتباه است: [خروجی فعلی] بهجای [خروجی درست]. خطبهخط اجرا را دنبال کن و نقطهای را که منطق خراب میشود نشان بده.
پرامپت ۹ — اضافه کردن لاگ هوشمند
نمیدانم این باگ کجا رخ میدهد. پیشنهاد بده در کدام نقاط این کد لاگ بگذارم و دقیقاً چه متغیرهایی را چاپ کنم تا علت پیدا شود. از ماژول logging استفاده کن، نه print.
پرامپت ۱۰ — مشکل همزمانی
این کد گاهی (نه همیشه) نتیجهٔ اشتباه میدهد و حدس میزنم race condition باشد. سناریوهایی را که دو درخواست همزمان باعث خرابی میشوند توضیح بده و راهحل با transaction یا قفل دیتابیس پیشنهاد کن.
پرامپت ۱۱ — خطای بعد از ارتقای نسخه
بعد از ارتقای [کتابخانه] از نسخهٔ [قدیم] به [جدید] این خطا آمده: [خطا]. تغییرات ناسازگار (breaking changes) محتمل را بگو. اگر از تغییرات این نسخه مطمئن نیستی، صریحاً بگو تا خودم changelog را چک کنم.
پرامپت ۱۲ — تست واحد کامل
برای این تابع با pytest تست بنویس: حالت عادی، ورودیهای مرزی، ورودی نامعتبر و استثناها. هر تست یک چیز را بسنجد و نامش بگوید چه چیزی را تست میکند.
پرامپت ۱۳ — تست برای کد قدیمی
این کد تست ندارد و میخواهم ریفکتورش کنم. اول تستهایی بنویس که رفتار فعلی را ثابت کنند (characterization tests)، حتی اگر رفتار فعلی عجیب باشد.
پرامپت ۱۴ — تست ویو در Django
برای این view تست Django بنویس: کاربر مهمان باید ریدایرکت شود، کاربر عادی ۴۰۳ بگیرد و ادمین ۲۰۰. از TestCase و client خود Django استفاده کن و داده را با setUpTestData بساز.
پرامپت ۱۵ — پیدا کردن حالتهای جاافتاده
این تستها را ببین: <tests>[تستها]</tests> چه سناریوهایی پوشش داده نشدهاند؟ فقط فهرست بده و بگو کدام مهمتر است.

پرامپت ۱۶ — ریفکتور بدون تغییر رفتار
این تابع را خواناتر کن بدون اینکه رفتارش عوض شود. تابعهای بلند را بشکن، نامها را گویا کن و تکرار را حذف کن. تغییرات را بهصورت فهرست توضیح بده.
پرامپت ۱۷ — بازبینی مثل یک ارشد
مثل یک بازبین سختگیر این Pull Request را بررسی کن. مشکلات را در سه دسته بگو: باگ، امنیت، خوانایی. برای هر مورد شمارهٔ خط و پیشنهاد اصلاح بده. تعریف و تمجید لازم نیست.
پرامپت ۱۸ — بازبینی امنیتی
این کد را از نظر OWASP Top 10 بررسی کن: SQL Injection، XSS، احراز هویت ناقص، افشای اطلاعات حساس و ورودیهای بدون اعتبارسنجی. برای هر مشکل، نسخهٔ امن را بنویس.
پرامپت ۱۹ — Clean Code
این کد را بر اساس اصول Clean Code بازنویسی کن و بگو کدام اصل را کجا اعمال کردی.
برای آشنایی با خود اصول، مبانی کدنویسی حرفهای با Clean Code را بخوانید.
پرامپت ۲۰ — README پروژه
بر اساس این ساختار پوشه و فایل settings، یک README بنویس: هدف پروژه، پیشنیازها، نصب، اجرای محلی، متغیرهای محیطی و اجرای تست. فرض نکن چیزی را که در کد نیست.
پرامپت ۲۱ — توضیح کد ناآشنا
این کد را برای برنامهنویسی توضیح بده که تازه وارد تیم شده: اول هدف کلی در دو جمله، بعد جریان داده قدمبهقدم، و در آخر بخشهایی که احتمالاً شکنندهاند.
پرامپت ۲۲ — docstring و کامنت
برای همهٔ تابعهای عمومی این ماژول docstring به سبک Google بنویس. کامنت درونخطی فقط جایی بگذار که «چرا» را توضیح میدهد، نه «چه» را.
پرامپت ۲۳ — مهاجرت دیتابیس امن
میخواهم فیلد [نام] را از [نوع] به [نوع] تغییر دهم و جدول حدود [تعداد] ردیف دارد. migrationهای Django را طوری بنویس که داده از بین نرود و سایت هنگام اجرا از دسترس خارج نشود. مراحل را جدا کن.
پرامپت ۲۴ — تبدیل اسکریپت به کار پسزمینه
این اسکریپت Python را به یک تسک Celery تبدیل کن: retry با تأخیر افزایشی، timeout، لاگ خطا و idempotent بودن را رعایت کن.
پرامپت ۲۵ — مهاجرت Java به نسخهٔ جدید
این کلاس با Java 8 نوشته شده. آن را با امکانات Java 21 (record، switch expression، var و Stream) بهروز کن، ولی فقط جایی که خوانایی را واقعاً بهتر میکند.

اگر میخواهید این پرامپتها را در یک ایجنت ترمینالی به کار ببرید، آموزش Claude Code و آموزش وایب کدینگ با یک پروژهٔ واقعی قدم بعدی خوبی هستند. برای شروع سریعتر هم کدنویسی سریع و آسان با هوش مصنوعی را ببینید. و اگر پروژهٔ نرمافزاری دارید که میخواهید حرفهای ساخته شود، خدمات طراحی و توسعهٔ سایت رادینو در کنار شماست.
مدلهای بزرگ امروز فارسی را خوب میفهمند و برای توضیح نیازمندی، فارسی کاملاً کار میکند. فقط نام تابعها، پیامهای خطا و اصطلاحات فنی را همانطور که هست (انگلیسی) بگذارید.
این پرامپتها به مدل خاصی وابسته نیستند. برای مقایسهٔ مدلها در بنچمارکهای کدنویسی، راهنمای بهترین هوش مصنوعی برای برنامهنویسی را ببینید.
فقط کدی که مستقیماً به مسئله مربوط است: تابع مشکلدار، مدلها یا کلاسهایی که استفاده میکند و تنظیمات مرتبط. برای پروژههای بزرگ از ایجنتهایی استفاده کنید که خودشان فایلها را میخوانند.
معمولاً به خاطر کمبود زمینه (نسخهٔ نادرست، فایلهای دیدهنشده) یا توهم مدل. نسخهها را بگویید، خطای اجرا را برگردانید و از مدل بخواهید قبل از کد، فرضهایش را فهرست کند.
نه بهطور پیشفرض. همیشه بازبینی امنیتی (پرامپت ۱۸) را اجرا کنید، تست بنویسید و کد را مثل کد یک همکار تازهکار بررسی کنید.
همه منابع در تاریخ ۹ آبان ۱۴۰۵ بررسی شدهاند.
نظرات 0
برای ارسال نظر وارد حساب کاربری شوید.
هنوز نظری ثبت نشده؛ اولین نفر باشید.