12 KiB
12 KiB
مشخصات درسنامه: کالبدشکافی و کاوش در Codebase با ایجنتهای هوش مصنوعی
- شناسه در سیلابس:
L15.4 - فصل: فصل ۱۵: تکامل محصول با AI (Ch 15)
- نوع محتوا: 📘 درسنامه متنی
- زمان تقریبی مطالعه: ۱۶ دقیقه
- پیشنیازهای مستقیم:
L15.3(تعریف ویژگی جدید و تدوین مشخصات دقیق)
۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درسنامه باید بتواند:
- درک کند (Understand): چگونه مدلهای زبانی مجهز به پنجرههای زمینه غولپیکر (Context Windows) و نمایهسازی برداری (Vector Indexing) به عنوان باستانشناسان کدهای نرمافزار عمل میکنند.
- تحلیل/ارزیابی کند (Evaluate): جریان داده و چرخه حیات یک رویداد کامل در سیستم (نظیر مسیر ثبت رزرو از کلیک تا پیامک) را با پرسشگری مهندسی از ایجنت ردگیری و تحلیل کند.
- بهکار ببندد (Apply): قابلیت جستجوی معنایی در کل مخزن (
@codebaseدر Cursor و ابزارهای تحلیلی Antigravity / Claude Code) را برای کشف فایلهای مرتبط و تحلیل اثرگذاری تغییرات (Impact Analysis) به کار گیرد. - ایجاد کند (Create): نمودارهای تعاملی و فلوچارتهای زندهی معماری پروژه را به صورت خودکار از روی کدهای واقعی با پرامپتنویسی استخراج کند.
۲. محدوده و مرزهای محتوا (Scope & Boundaries)
آنچه باید پوشش داده شود (In-Scope):
- معمای فراموشی کدها: «این فایل ۳ هفته پیش چطور کار میکرد؟»:
- حتی سازنده اصلی پروژه پس از چند هفته جزییات دقیق اتصالات توابع و روتها را فراموش میکند؛ چه رسد به پیوستن به پروژهای که فرد دیگری نوشته است!
- پشت صحنه ایندکس کردن کدهای پروژه (
@codebaseIndexing):- تبدیل قطعات کد به بردارهای معنایی (Embeddings) و امکان جستجوی مفهومی؛ مثلاً جستجوی «کجا پیامک ارسال میشود؟» به جای جستجوی کلمه به کلمه.
- تکنیک پرسشگری مهندسی از ایجنت (Architectural Inquiries):
- پرسش ۱ (ردگیری چرخه حیات): «چرخه حیات یک رزرو مشاوره را از لحظه کلیک کاربر تا ثبت در Supabase، اتصال به زرینپال و ارسال پیامک کاوهنگار گامبهگام با ذکر نام فایلها و توابع توضیح بده.»
- پرسش ۲ (تحلیل اثر تغییر - Impact Analysis): «اگر ساختار فیلد
slugرا در جدول پروژهها تغییر دهم، دقیقاً کدام کامپوننتها و روتها در خطر شکستن هستند؟» - پرسش ۳ (نقشهبرداری وابستگیها): «کدام فایلها از تابع
createClientسوپابیس استفاده میکنند؟»
- تولید نمودارهای زنده از دل کدهای موجود:
- درخواست از ایجنت برای تولید دیاگرام توالی (Sequence Diagram) با فرمت Mermaid برای درک سریع جریان احراز هویت.
- جعبه پرامپت طلایی برای کاوش و درک کدهای پروژه:
- پرامپت جامع اسکن معماری و ایجاد سند
architecture-overview.md.
- پرامپت جامع اسکن معماری و ایجاد سند
- کالاوتهای آموزشی و هشدار کوئرا:
- کالاوت بنفش (
<details class="violet">): مفهوم پنجره زمینه بزرگ (Large Context)؛ تفاوت توانایی پردازش همزمان صدها فایل در مدلهای روز در مقایسه با نسلهای اولیه. - کالاوت سبز (
<details class="green">): توانایی شگفتانگیز برای ورود به هر ریپازیتوری اوپنسورس غریبه در گیتهاب و درک معماری آن در کمتر از ۱۵ دقیقه. - کالاوت قرمز (
<details class="red">): پرهیز از سوالات کلی و مبهم مانند «کل کدها رو توضیح بده»؛ همیشه سوالات مشخص با سناریوهای کاربردی بپرسید تا پاسخ دقیق بگیرید.
- کالاوت بنفش (
آنچه نباید وارد آن شویم (Out-of-Scope):
- مباحث ریاضیات و جبر خطی نحوه تولید بردارها در شبکههای عصبی (Vector Math).
- پیادهسازی دستی دیتابیسهای برداری Pinecone یا Chroma از صفر.
۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یکخطی ساده |
|---|---|---|
| Codebase Comprehension | درک جامع ساختار کدبیس | فرآیند شناخت ساختار معماری، وابستگیها و جریان داده در یک پروژه نرمافزاری بزرگ |
| Impact Analysis | تحلیل اثرگذاری تغییرات | پیشبینی دقیق تمام فایلها و ماژولهایی که با تغییر یک تابع یا اسکیمای دیتابیس تحتتاثیر قرار میگیرند |
| Semantic Code Search | جستجوی معنایی کد | یافتن توابع و منطقهای برنامه بر اساس مفهوم و کارکرد آنها، نه صرفاً تطابق نام کلمات |
| Context Window | پنجره کانتکست مدل | حجم داده و تعداد کدهایی که مدل زبانی میتواند در یک لحظه در حافظه خود نگه دارد |
| Sequence Diagram | دیاگرام توالی | نمودار زمانی نمایشدهنده ترتیب تبادل پیامها و درخواستها میان اجزای مختلف سیستم |
۴. جایگاههای تصاویر و نمودارها (Visual & Diagram Placeholders)
راهنمای ایجنت نویسنده: تمام تصاویر باید در پوشهٔ
images/ذخیره شده و در جدول تکخانهای وسطچین درج شوند:
- تصویر کاور درس:
images/cover.png- موضوع: ذرهبین اشعه ایکس دیجیتال نئونی که لایههای تو در توی کدهای یک پروژه نرمافزاری را روشن و شفاف میکند.
- پشت صحنه ایندکس معنایی کدهای پروژه:
images/codebase-indexing-architecture.png- موضوع: دیاگرام فرآیند: فایلهای پروژه
\rightarrowتولید بردارها\rightarrowدیتابیس برداری محلی ادیتور\rightarrowپاسخگویی فوقسریع به پرامپت@codebase.
- موضوع: دیاگرام فرآیند: فایلهای پروژه
- نمودار توالی جریان داده رزرو در پورتفولیو:
images/booking-sequence-diagram.png- موضوع: دیاگرام توالی Mermaid رندرشده: کاربر
\rightarrowفرم رزرو\rightarrowServer Action\rightarrowSupabase\rightarrowزرینپال\rightarrowکاوهنگار.
- موضوع: دیاگرام توالی Mermaid رندرشده: کاربر
- نمایش پاسخ تحلیلی ایجنت به سوال اثرگذاری تغییر:
images/ai-impact-analysis-chat.png- موضوع: اسکرینشات از چتباکس Cursor که لیست فایلهای در معرض خطر تغییر ستون دیتابیس را با نشانهگذاری قرمز و سبز ردیف کرده است.
۵. بخشبندی و ساختار محتوایی پیشنهادی درسنامه (README.md)
- تیتر اصلی:
# کالبدشکافی و کاوش در Codebase با ایجنتهای هوش مصنوعی - مقدمه: چگونه در پروژهای با دهها پوشه و هزاران خط کد، در عرض ۲ دقیقه بفهمیم هر قطعه دقیقاً چه وظیفهای دارد؟
- جدول کاور درس
- استعاره استخدام یک راهنمای محلی در شهری ناشناخته:
- به جای سرگردانی در کوچهها، از راهنمایی که تمام نقشه شهر را از حفظ است آدرس دقیق را بپرسید.
- قدرت جادویی نمایه برداری و جستجوی معنایی (
@codebase):- چطور ادیتور بدون کپی کردن دستی فایلها، تمام پروژه شما را میفهمد.
- هنر مصاحبه معمارانه با ایجنت:
- ۳ فرمول پرامپت طلایی: ردگیری جریان داده، تحلیل اثر تغییر، و کشف منطقهای پنهان.
- مطالعه موردی: استخراج چرخه کامل پرداخت و پیامک در پورتفولیو:
- مشاهده خروجی گامبهگام ایجنت و راستیآزمایی آن با فایلهای واقعی.
- رسم خودکار دیاگرامهای توالی با Mermaid:
- دستور به ایجنت برای تبدیل منطق پنهان کدها به نقشه گرافیکی خوانا.
- جعبه پرامپت طلایی: تحلیل اثرگذاری تغییرات قبل از دستکاری کد:
- پرامپت دقیق:
«من میخواهم فیلد
priceرا در جدول جلسات مشاوره بهamount_tomanتغییر نام دهم. لطفاً کل@codebaseرا تحلیل کن و ۱) تمام فایلها، کامپوننتها، تایپها و روتهایی که تحتتاثیر این تغییر قرار میگیرند را لیست کن، ۲) خطرات احتمالی در فرانتاند و درگاه پرداخت را شرح بده، و ۳) ترتیب امن اعمال این تغییر را مرحلهبندی نما.»
- پرامپت دقیق:
- باکس نکته Quera (
<details class="violet">): کلید میانبر@docsبرای اضافه کردن مستندات فریمورکهای خارجی در کنار@codebaseخودی. - باکس هشدار Quera (
<details class="red">): ایجنتها ممکن است در پروژههای بسیار بزرگ فایلهایی با ایمپورتهای داینامیک را از قلم بیندازند؛ همیشه از ابزار جستجوی سراسری متنی (Grep) به عنوان مکمل استفاده کنید. - باکس رضایتبخش Quera (
<details class="green">): احساس تسلط مطلق بر کل پروژه؛ انگار که خودتان تکتک خطوط را از حفظ هستید. - جمعبندی درسنامه: تسلط بر تحلیل کدهای موجود؛ ورود به حوزه حساس و حیاتی بازنویسی و ریفکتورینگ امن (Safe Refactoring) در درس بعدی.
۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- نحوه کارکرد ایندکس معنایی کدهای پروژه (
@codebase) تشریح شود. - تکنیکهای تحلیل چرخه حیات داده و تحلیل اثرگذاری تغییرات (Impact Analysis) آموزش داده شود.
- شیوه تولید خودکار دیاگرامهای معماری با Mermaid از روی کدهای پروژه ارائه گردد.
- پرامپتهای مهندسی کاوش در کدهای موجود به همراه مثالهای ملموس لحاظ شود.