13 KiB
13 KiB
مشخصات درسنامه: دیباگ تعاملی با Agent، ابزارهای حاشیهنویسی و حل خطاهای متداول
- شناسه در سیلابس:
L9.6 - فصل: فصل ۹: تست و Debugging (Ch 9)
- نوع محتوا: 📘 درسنامه متنی
- زمان تقریبی مطالعه: ۱۸ دقیقه
- پیشنیازهای مستقیم:
L9.5(اصول دیباگ کردن خطاها و خواندن لاگها)
۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درسنامه باید بتواند:
- درک کند (Understand): تفاوت دیباگ مکانیکی سنتی با «دیباگ تعاملی با ایجنت» (Interactive Agentic Debugging) چیست و چگونه میتوان از قابلیتهای نوین ابزارهای Cursor، Claude Code و Antigravity (نظیر ارجاع مستقیم به ترمینال و اسکرینشات) بیشترین بهره را برد.
- تحلیل/ارزیابی کند (Evaluate): پدیده مخرب «چرخه باطل عذرخواهی و وصلهپینه» (Apology & Patching Loop) را در ایجنتها شناسایی کند و بداند چه زمانی باید گفتگو را متوقف کرده و با Git Rollback از ابتدا شروع نماید.
- بهکار ببندد (Apply): ۴ خطای پرتکرار و مرگبار در دنیای وایب کدینگ (سیاستهای RLS سوپابیس، کلیدهای مخفی تعریفنشده در
.env، تداخل کلاینت/سرور کامپوننت و تغییرات Dynamic Params در نکستجیاس) را با الگوهای تضمینی حل کند. - ایجاد کند (Create): یک پرامپت ایزولهسازی با تزریق لاگهای موقت (
console.log) ایجاد کند تا ایجنت بتواند نقطه دقیق قطع جریان داده را بدون تغییرات غیرضروری در سایر فایلها شناسایی کند.
۲. محدوده و مرزهای محتوا (Scope & Boundaries)
آنچه باید پوشش داده شود (In-Scope):
- انقلاب در روش دیباگ: دیباگ تعاملی به جای سردرگمی در کد:
- چگونه بدون خواندن هزار خط کد، مستقیماً با ایجنت دیالوگ مهندسی برقرار کنیم؟
- ابزارهای پیشرفته حاشیهنویسی بصری و اتصال به محیط (Visual Annotation & Context):
- استفاده از قابلیت بازرسی مرورگر داخلی و گرفتن اسکرینشات از المان معیوب.
- ویژگی ارجاع مستقیم به خروجی ترمینال در ابزارهای مدرن (کلید
@terminalدر Cursor یا خواندن خودکار در Claude Code).
- شکستن چرخه باطل «عذرخواهی میکنم، الان درستش میکنم!» (The Apology Loop):
- وقتی ایجنت به بنبست میرسد و شروع به تکرار کدهای اشتباه یا خراب کردن بخشهای سالم میکند:
- قانون طلایی سه تلاش (Three-Strikes Rule): بعد از دو بار ناموفق بودن، فوراً
git checkoutیاgit stashبزنید. - پاک کردن Context چت و شروع یک گفتگوی تازه با پرامپت دقیقتر و کانتکست ایزوله.
- قانون طلایی سه تلاش (Three-Strikes Rule): بعد از دو بار ناموفق بودن، فوراً
- وقتی ایجنت به بنبست میرسد و شروع به تکرار کدهای اشتباه یا خراب کردن بخشهای سالم میکند:
- کالبدشکافی ۴ تله فوقالعاده رایج و راهحل قطعی آنها:
- تله ۱: خطای ۴۰۳ یا خالی بودن لیست پروژهها در Supabase
\leftarrowفراموشی یا نقص در تعریف سیاست RLS. - تله ۲: مقدار
undefinedبرای متغیرهای محیطی\leftarrowپیشوند اشتباهNEXT_PUBLIC_یا فراموشی ریاستارت سرور. - تله ۳: خطای React در هوکها (
useState/useEffect)\leftarrowنبود دایرکتیو'use client'در بالای فایل. - تله ۴: خطای تایپ یا اجرای Dynamic Routes در Next.js مدرن
\leftarrowناهمگام بودن دسترسی بهparams.
- تله ۱: خطای ۴۰۳ یا خالی بودن لیست پروژهها در Supabase
- تکنیک لاگگذاری موقت (Minimal Instrumentation):
- درخواست از ایجنت برای افزودن ۳ خط
console.logبرای دیدن خروجی متغیرها در ترمینال، قبل از هرگونه بازنویسی کد.
- درخواست از ایجنت برای افزودن ۳ خط
- دستورات چندسکویی برای بازگشت سریع به آخرین وضعیت پایدار گیت (Rollback):
- دستورات پاک کردن تغییرات تست و بازگشت به کامیت قبلی در سه سیستمعامل.
- کالاوتهای آموزشی و هشدار کوئرا:
- کالاوت بنفش (
<details class="violet">): قابلیتهای ویژه اپلیکیشنهای دسکتاپ هوش مصنوعی در درک باگهای بصری. - کالاوت سبز (
<details class="green">): آرامش خاطر با کامیتهای متوالی و کوچک؛ بیمه بدنه کدهای شما. - کالاوت قرمز (
<details class="red">): خطر تایید تغییرات در فایلهای کانفیگ اصلی (next.config.js,tsconfig.json) توسط ایجنت در حالت سردرگمی.
- کالاوت بنفش (
آنچه نباید وارد آن شویم (Out-of-Scope):
- تنظیمات CI/CD ابری و اکشنهای گیتهاب (فصل ۱۲ و ۱۳).
- تستهای نفوذ و دیباگ باگهای امنیتی پیشرفته (فصل ۱۱).
۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یکخطی ساده |
|---|---|---|
| Interactive Debugging | دیباگ تعاملی | فرآیند گفتگوی پیوسته و هوشمند با ایجنت برای رفع پلهپله خطاها بر اساس شواهد |
| Visual Annotation | حاشیهنویسی بصری | مشخص کردن المان معیوب رابط کاربری با کادر یا اسکرینشات و ارجاع مستقیم آن به ایجنت |
| Apology Loop | چرخه باطل عذرخواهی | وضعیتی که مدل به طور پیوسته عذرخواهی کرده و راهحلهای بیاثر را تکرار میکند |
| Three-Strikes Rule | قانون سه ضربه | توقف گفتگو با ایجنت پس از دو تلاش ناموفق برای جلوگیری از خرابکاریهای بیشتر در کد |
| Clean Context Window | پنجره کانتکست پاک | شروع یک چت کاملاً جدید برای زدودن خطاهای قبلی و تمرکز مجدد ایجنت روی مسئله |
| Git Rollback | بازگشت به نسخه پایدار گیت | لغو تغییرات معیوب اخیر و بازگرداندن فایلها به آخرین کامیت سالم |
۴. جایگاههای تصاویر و نمودارها (Visual & Diagram Placeholders)
راهنمای ایجنت نویسنده: تمام تصاویر باید در پوشهٔ
images/ذخیره شده و در جدول تکخانهای درج شوند:
- تصویر کاور درس:
images/cover.png- موضوع: تقابل یک حلقه باطل تو در تو با یک مسیر مستقیم خروج اضطراری و دیباگ موفق با ایجنت.
- قابلیت حاشیهنویسی المان در ادیتور:
images/visual-element-annotation.png- موضوع: تصویر ابزار انتخاب المان در مرورگر یا ادیتور مدرن که کاربر دور دکمه بههمریخته کادر کشیده و ایجنت به کد آن متصل شده است.
- چرخه شکستن تله عذرخواهی ایجنت:
images/breaking-apology-loop.png- موضوع: اینفوگرافیک گامبهگام: خطای تکراری
\rightarrowتوقف\rightarrowبازگشت به آخرین کامیت (git checkout)\rightarrowچت جدید با کانتکست خلوت.
- موضوع: اینفوگرافیک گامبهگام: خطای تکراری
- جدول راهنمای ۴ خطای طلایی و راهحل:
images/common-errors-matrix.png- موضوع: ماتریس گرافیکی ۴ خطای مشهور (RLS، Environment Variables، 'use client'، Dynamic Params) با تصویر خطای قرمز و کد حل مشکل.
۵. بخشبندی و ساختار محتوایی پیشنهادی درسنامه (README.md)
- تیتر اصلی:
# دیباگ تعاملی با Agent، ابزارهای حاشیهنویسی و حل خطاهای متداول - مقدمه: وقتی ایجنت ۵ بار پشت سر هم میگوید «عذرخواهی میکنم، این بار مطمئناً درست شد!» و پروژه خرابتر میشود، چطور ترمز دستی را بکشیم؟
- جدول کاور درس
- تکنیک حاشیهنویسی بصری (Visual Annotation):
- عکس بفرستید، نه هزار کلمه توضیح! چطور اسکرینشات یا المان خراب را مستقیم به خورد مدل بدهیم؟
- اتصال مستقیم لاگهای ترمینال با
@terminal.
- روانشناسی مدلهای زبانی: چرا ایجنت در چرخه باطل وصلهپینه میافتد؟
- پدیده «لجبازی توکنی» وقتی تاریخچه چت پر از کدهای اشتباه قبلی است.
- قانون سه ضربه (Three-Strikes Rule): بعد از تلاش دوم، کلید Reset را بزنید.
- جعبه ابزار خروج اضطراری: بازگشت به نقطه امن با Git:
- نحوه استفاده از دکمه Discard در VS Code یا کامندهای پاکسازی ترمینال.
- کالبدشکافی ۴ خطای پرتکرار در پروژه پورتفولیو و نسخه شفابخش آنها:
- خطای شماره ۱: دیتابیس Supabase پاسخ نمیدهد و لیست خالی برمیگرداند (سیاست RLS عمومی).
- خطای شماره ۲: کلیدهای محیطی
process.envمقدارundefinedدارند. - خطای شماره ۳: خطای کامپوننتهای کلاینت در استفاده از هوکهای React.
- خطای شماره ۴: خطای تغییرات Next.js 15+ در دریافت پارامترهای آدرس داینامیک.
- باکس نکته Quera (
<details class="violet">): استفاده از پرامپت «فقط ۳ خط لاگ موقت اضافه کن» برای فهمیدن اینکه داده تا کدام خط میآید و کجا قطع میشود. - دستورات چندسکویی بازگشت به وضعیت سالم قبلی در Git:
- منوی کشویی سهگانه برای ویندوز، مک و لینوکس:
- Windows (PowerShell):
git restore . git clean -fd - macOS (Terminal):
git restore . git clean -fd - Linux (Bash):
git restore . git clean -fd
- Windows (PowerShell):
- منوی کشویی سهگانه برای ویندوز، مک و لینوکس:
- باکس هشدار Quera (
<details class="red">): هرگز اجازه ندهید ایجنت فایلهایpackage.jsonیا کانفیگهای اصلی فریمورک را برای حل یک خطای ساده کامپوننت زیر و رو کند! - باکس انرژیبخش Quera (
<details class="green">): اکنون شما یک محصول ضدضربه و پایدار ساختهاید و آماده اتصال آن به شاهراههای دنیای واقعی در فصل ۱۰ هستید. - جمعبندی فصل نهم و پیشنمایش فصل دهم: پایان فصل تست و دیباگ؛ ورود به فصل جذاب دهم: اتصال سرویسهای خارجی (پیامک، ایمیل، درگاه پرداخت و هوش مصنوعی).
۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- تکنیکهای دیباگ بصری و استفاده از لاگ ترمینال به شکل عملی شرح داده شود.
- پدیده چرخه باطل عذرخواهی و قانون سه ضربه (Three-Strikes Rule) تبیین گردد.
- ۴ خطای فوقمتداول توسعه وب مدرن به همراه سناریوهای پروژه پورتفولیو تشریح شود.
- دستورات ترمینالی بازگشت به وضعیت سالم در گیت برای هر سه سیستمعامل ارائه گردد.