Files

98 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# مشخصات درس‌نامه: اصول مهندسی پرامپت (Prompt Engineering for Vibe Coding)
- **شناسه در سیلابس:** `L2.6`
- **فصل:** فصل ۲: شروع مسیر Vibe Coding (Ch 2)
- **نوع محتوا:** 📘 درس‌نامه متنی
- **زمان تقریبی مطالعه:** ۱۲ دقیقه
- **پیش‌نیازهای مستقیم:** `L2.5` (انتظارات واقع‌بینانه و هزینه)
---
## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:
- [ ] **درک کند (Understand):** چرا پرامپت‌نویسی برای ایجنت‌های توسعه نرم‌افزار با چت کردن عادی با چت‌بات‌های متنی متفاوت است.
- [ ] **به‌کار ببندد (Apply):** فرمول چهاربخشی پرامپت مهندسی نرم‌افزار را اجرا کند: **بافت (Context) + هدف مشخص (Objective) + محدودیت‌ها (Constraints) + معیارهای پذیرش (Acceptance Criteria)**.
- [ ] **به‌کار ببندد (Apply):** قانون اتمیک بودن (Rule of Atomicity) را پیاده کند؛ درخواست‌های بزرگ را به تسک‌های تک‌مرحله‌ای، مستقل و قابل‌تست بشکند و از «تلهٔ مگاپرامپت» پرهیز کند.
- [ ] **به‌کار ببندد (Apply):** از پرامپت‌های چندرسانه‌ای (ارسال تصویر و اسکرین‌شات از خطاها یا طرح‌های بصری) برای انتقال سریع‌تر منظور استفاده کند.
- [ ] **به‌کار ببندد (Apply):** الگوی استاندارد گزارش خطا (Structured Error Reporting) را پیاده کند؛ ارسال مستقیم متن کامل خطای ترمینال یا کنسول به جای جملات مبهم نظیر «کار نکرد، درستش کن!».
---
## ۲. محدوده و مرزهای محتوا (Scope & Boundaries)
### آنچه باید پوشش داده شود (In-Scope):
1. **گذار از گفتگوی سطحی به دستورالعمل مهندسی:**
* هوش مصنوعی ذهن‌خوان نیست؛ وضوح ورودی شما دقیقاً کیفیت خروجی کد را تعیین می‌کند (Garbage In, Garbage Out).
2. **فرمول طلایی پرامپت نرم‌افزاری (The 4-Part Vibe Formula):**
* **۱. بافت و زمینه (Context):** ما در حال ساخت چه پروژه‌ای هستیم و چه استکی داریم؟
* **۲. هدف مشخص (Objective):** دقیقاً چه تغییری، چه فیچری یا چه تابعی باید اضافه/اصلاح شود؟
* **۳. محدودیت‌ها (Constraints):** چه چیزهایی نباید تغییر کنند؟ چه پکیج‌های خاصی باید استفاده یا پرهیز شوند؟
* **۴. معیارهای پذیرش (Acceptance Criteria):** از کجا بفهمیم کار با موفقیت انجام شده است؟ (مثلاً «یک پیام سبز موفقیت نمایش داده شود»).
3. **قانون تغییرات اتمیک (Rule of Atomicity):**
* تفاوت پرامپت مخرب همه‌کاره («برای من یک فروشگاه مثل دیجی‌کالا بساز با سبد خرید و درگاه پرداخت و پنل ادمین») با زنجیره پرامپت‌های اتمیک («گام ۱: فقط کارت نمایش محصول را بساز»).
* چرا شکستن کار به گام‌های کوچک، خطای ایجنت را به صفر نزدیک می‌کند و تست خروجی را آسان می‌سازد.
4. **پرامپت‌های چندرسانه‌ای (Multimodal Visual Prompts):**
* استفاده از اسکرین‌شات رابط کاربری: کشیدن دایره قرمز دور بخشی که چیدمانش به هم ریخته یا رنگش غلط است.
* ارسال تصویر یک نمونه واقعی (Inspiration) برای ساخت ظاهر مشابه در کد.
5. **الگوی گزارش دقیق باگ و خطا (Bug Reporting Pattern):**
* چرا نباید بنویسیم «دکمه کار نکرد» یا «خراب شد»؟
* فرمول گزارش خطا: ۱. چه کاری انجام دادم؟ ۲. چه خطایی در ترمینال رخ داد (کپی دقیق متن خطا)؟ ۳. چه انتظاری داشتم؟
6. **کال‌اوت‌های Quera:**
* `<details class="violet">`: مقایسه دو پرامپت واقعی ضعیف و مهندسی‌شده قبل و بعد برای یک فیچر مشخص.
* `<details class="red">`: تلهٔ مگاپرامپت (The Mega-Prompt Trap)؛ علت اصلی قاطی کردن ایجنت‌ها و شلختگی کدهای پروژه.
### آنچه نباید وارد آن شویم (Out-of-Scope):
- نوشتن سند PRD یا ساختار تسک‌های چندفصلی (این کار در فصل ۴ آموزش داده می‌شود).
- آموزش‌های متفرقه پرامپت‌نویسی ادبی، شعر، کپی‌رایتینگ متنی یا تحلیل بازار.
---
## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده |
| :--- | :--- | :--- |
| Prompt Engineering | مهندسی پرامپت | مهارت تنظیم دستورالعمل‌های دقیق، محدود و ساخت‌یافته برای دستیابی به خروجی کد بهینه |
| Atomicity | اتمیک بودن / تجزیه‌ناپذیری | تکه‌تکه کردن تسک‌های نرم‌افزاری به گونه‌ای که هر پرامپت فقط یک هدف واحد و قابل تست داشته باشد |
| Mega-Prompt | مگاپرامپت | دستور فوق‌العاده حجیم و درهم‌تنیده که همزمان ده‌ها فیچر را طلب می‌کند و باعث شکست مدل می‌شود |
| Multimodal Prompting | پرامپت‌نویسی چندرسانه‌ای | ترکیب متن، اسکرین‌شات رابط کاربری و تصاویر خطای برنامه در دستور ورودی به ایجنت |
| Error Stack Trace | ردپای خطای نرم‌افزاری | پیام متنی دقیق تولیدشده توسط سیستم که نام فایل، شماره خط و علت رخ دادن باگ را نشان می‌دهد |
---
## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)
> **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` قرار گرفته و در قالب جدول تک‌خانه‌ای وسط‌چین با کپشن تفصیلی درج شوند:
1. **تصویر کاور درس:** `images/cover.png`
* **موضوع:** کاور با تم تیره که پرامپت ساخت‌یافته را مانند یک معمار در حال چیدن آجرهای کد منظم و دیجیتال نشان می‌دهد.
2. **فرمول چهارگانه پرامپت نرم‌افزاری:** `images/vibe-prompt-formula.png`
* **موضوع:** اینفوگرافیک ۴ قطعه پازل: بافت (Context)، هدف (Objective)، محدودیت‌ها (Constraints)، و معیار قبولی (Acceptance Criteria).
3. **اصل اتمیک بودن در برابر انفجار مگاپرامپت:** `images/atomicity-vs-megaprompt.png`
* **موضوع:** مقایسه تصویری: یک درخواست غول‌پیکر که ایجنت را گیج می‌کند در برابر ۳ پله کوچک و متوالی که یکی‌یکی با موفقیت سبز می‌شوند.
4. **جادوی اسکرین‌شات و پرامپت بصری:** `images/multimodal-prompting.png`
* **موضوع:** نمونه کاربردی فرستادن یک اسکرین‌شات با حاشیه‌نویسی ساده به ایجنت و اصلاح دقیق استایل دکمه در اولین تلاش.
5. **چرخه صحیح گزارش و رفع خطا:** `images/error-reporting-loop.png`
* **موضوع:** فلوچارت ارسال متن لاگ خطا $\rightarrow$ تحلیل ایجنت $\rightarrow$ اعمال پچ اصلاحی $\rightarrow$ تست مجدد توسط کاربر.
---
## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`)
1. **تیتر اصلی:** `# اصول مهندسی پرامپت در وایب کدینگ`
2. **مقدمه:** چرا نحوه حرف زدن شما با ایجنت، تفاوت بین یک محصول حرفه‌ای و یک پروژه به بن‌بست خورده است؟
3. **جدول کاور درس**
4. **تفاوت پرامپت کدنویسی با چت روزمره:** عبور از «کد بنویس» به سمت مشخصه‌سازی دقیق نیازمندی.
5. **فرمول چهاربخشی پرامپت وایب کدینگ:** تشریح بافت، هدف، محدودیت‌ها و شرایط پذیرش با یک مثال ملموس.
6. **باکس نمونه Quera (`<details class="violet">`):** کالبدشکافی یک پرامپت بد در برابر یک پرامپت استاندارد مهندسی‌شده.
7. **قانون طلایی اتمیک بودن (One Step at a Time):** چرا باید پروژه را لقمه‌لقمه به هوش مصنوعی تحویل دهیم؟
8. **باکس هشدار Quera (`<details class="red">`):** خطرات مرگبار مگاپرامپت‌ها در نابودی معماری پروژه.
9. **قدرت پرامپت‌های تصویری (Multimodal):** چگونه یک تصویر، کار صد کلمه توضیح گیج‌کننده را انجام می‌دهد؟
10. **هنر گزارش خطا: چگونه باگ‌ها را به هوش مصنوعی تحویل دهیم؟:** نحوه کپی کردن لاگ، بیان انتظار و حل سیستماتیک مشکل.
11. **جمع‌بندی درس‌نامه:** تمرین مهارت پرامپت‌نویسی به عنوان زبان مادری سازندگان آینده.
---
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- [ ] فرمول چهاربخشی پرامپت‌نویسی نرم‌افزار به وضوح آموزش داده شده باشد.
- [ ] اصل اتمیک بودن به همراه مثال واقعی در متن جا افتاده باشد.
- [ ] روش ارسال خطاها با کپی کردن لاگ و متن کامل کنسول در برابر ارسال جملات گنگ تبیین شده باشد.
- [ ] کال‌اوت‌های کوئرا با محتوای کاربردی و قالب متنی تمیز درج شده باشند.