Files

102 lines
12 KiB
Markdown
Raw 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.
# مشخصات درس‌نامه: اتوماسیون نگهداری و توسعه؛ از تریاژ خودکار ایشیوها تا اسکریپت‌های خودترمیم
- **شناسه در سیلابس:** `L15.8`
- **فصل:** فصل ۱۵: تکامل محصول با AI (Ch 15)
- **نوع محتوا:** 📘 درس‌نامه متنی
- **زمان تقریبی مطالعه:** ۱۶ دقیقه
- **پیش‌نیازهای مستقیم:** `L15.7` (ساخت گردش‌کارهای ایجنتیک خودکار)
---
## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:
- [ ] **درک کند (Understand):** مفهوم اتوماسیون نگهداری و توسعه (DevOps & Maintenance Automation) را شرح دهد و بداند چگونه کارهای روزمره و خسته‌کننده (تریاژ باگ‌ها، پاک‌سازی لاگ‌ها، ممیزی کدهای جدید) را به ربات‌های خودکار بسپارد.
- [ ] **تحلیل/ارزیابی کند (Evaluate):** کاربرد اکشن‌های گیت‌هاب (GitHub Actions) و ادغام مدل‌های زبانی را در بررسی خودکار کدهای Pull Request (AI Code Reviewer) و برچسب‌گذاری ایشیوها ارزیابی کند.
- [ ] **به‌کار ببندد (Apply):** یک کرون جاب (Cron Job) زمان‌بندی‌شده سرورلس برای پاک‌سازی خودکار رکوردهای موقت منقضی‌شده (کدهای پیامکی قدیمی، لاگ‌های بی‌استفاده) در Supabase پیاده نماید.
- [ ] **ایجاد کند (Create):** یک اسکریپت نظارت بر تست‌های خودکار بسازد که در صورت شکست تست‌ها، خطای مربوطه را تحلیل و پیش‌نویس اصلاحیه کد را تولید کند.
---
## ۲. محدوده و مرزهای محتوا (Scope & Boundaries)
### آنچه باید پوشش داده شود (In-Scope):
1. **استعاره ربات‌های جاروبرقی هوشمند در خانه:**
* شما در خواب هستید، اما ربات به طور خودکار کف خانه را جارو می‌کند، زباله‌ها را پاک می‌کند و شارژ می‌شود.
2. **اتوماسیون مخزن گیت‌هاب با اکشن‌های هوش مصنوعی (AI GitHub Actions):**
* تریاژ خودکار ایشیوها (Automated Issue Triage): وقتی کاربری در گیت‌هاب ایشیو می‌زند، مدل محتوا را می‌خواند، برچسب‌های `bug` یا `enhancement` می‌زند و در صورت ناقص بودن اطلاعات، کامنت راهنما می‌گذارد.
* بازبین خودکار کدها (AI Pull Request Reviewer): ربات هوشمندی که تغییرات PR را با قوانین `.cursorrules` مقایسه کرده و در صورت وجود کلید هاردکد شده یا توابع ناامن، هشدار درون‌خطی ثبت می‌کند.
3. **وظایف دوره‌ای پاک‌سازی پایگاه داده (Database Scheduled Maintenance):**
* راه‌اندازی توابع زمان‌بندی‌شده ابری (Cron Triggers):
- حذف رکوردهای منقضی‌شده OTP بعد از ۲۴ ساعت.
- پاک‌سازی لاگ‌های قدیمی و جلوگیری از پر شدن حجم رایگان دیتابیس Supabase.
4. **اسکریپت‌های تست خودترمیم (Self-Healing Tests):**
* سناریویی که در آن شکست تست به دلیل تغییر ساده نام یک کلاس Tailwind یا متن دکمه، توسط ایجنت شناسایی و فایل تست به صورت خودکار با برنچ جدید آپدیت می‌شود.
5. **ارسال گزارش خلاصه هفتگی سلامت به تلگرام سازنده:**
* گزارش خودکار هفتگی: «پورتفولیو در هفته گذشته ۱۰۰٪ آپتایم داشت، ۱۲ پیام ثبت شد و ۵۰ رکورد منقضی پاک‌سازی گردید.»
6. **کال‌اوت‌های آموزشی و هشدار کوئرا:**
* کال‌اوت بنفش (`<details class="violet">`): مفهوم کرون جاب در معماری بدون سرور با اندپوینت‌های ایمن‌شده با توکن (`CRON_SECRET`).
* کال‌اوت سبز (`<details class="green">`): حس شگفت‌انگیز باز کردن گیت‌هاب و دیدن کامنت‌های دقیق ربات بازبین روی کدهای جدید.
* کال‌اوت قرمز (`<details class="red">`): مرز باریک اتوماسیون؛ هرگز اجازه ادغام خودکار (Auto-Merge) کدهای تغییریافته به شاخه اصلی پروداکشن را به ربات‌ها ندهید.
### آنچه نباید وارد آن شویم (Out-of-Scope):
- پایپ‌لاین‌های پیچیده چندمرحله‌ای کلاود AWS CodePipeline.
- نوشتن افزونه‌های اختصاصی سیستم‌های مدیریت کانتینر داکر سوآرم.
---
## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده |
| :--- | :--- | :--- |
| Maintenance Automation | خودکارسازی فرآیندهای نگهداری | برنامه‌ریزی سیستم‌ها برای انجام منظم کارهای اصلاحی و پاک‌سازی بدون دخالت دست انسان |
| Issue Triaging | تریاژ و اولویت‌بندی ایشیوها | فرآیند دسته‌بندی، ارزیابی فوریت و تعیین تکلیف گزارش‌های باگ دریافت شده از کاربران |
| Cron Job | وظیفه زمان‌بندی‌شده | فرآیندی که در ساعت‌ها یا روزهای معین به صورت خودکار در پس‌زمینه سرور اجرا می‌شود |
| Self-Healing System | سیستم خودترمیم | سامانه‌ای که پس از مواجهه با خطاهای سطحی، می‌تواند به صورت خودکار اقدامات اصلاحی اولیه را انجام دهد |
| PR Review Bot | ربات بازبین پول ریکوئست | ابزار هوش مصنوعی که پیش از ادغام کدهای جدید، آن‌ها را از نظر کیفیت و امنیت نقد می‌کند |
---
## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)
> **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` ذخیره شده و در جدول تک‌خانه‌ای وسط‌چین درج شوند:
1. **تصویر کاور درس:** `images/cover.png`
* **موضوع:** ربات دستیار مکانیک نئونی با ابزارهای دیجیتال در حال آچارکشی خودکار کدهای یک سرور ابری در طول شب.
2. **جریان کار ربات بازبین هوش مصنوعی در گیت‌هاب:** `images/ai-pr-reviewer-flow.png`
* **موضوع:** دیاگرام فرآیند: ارسال PR جدید $\rightarrow$ وب‌هوک گیت‌هاب اکشن $\rightarrow$ تحلیل تغییرات با پرامپت قوانین $\rightarrow$ ثبت کامنت‌های بازبینی هوشمند روی خطوط کد.
3. **نمونه کامنت ربات هوش مصنوعی روی پول ریکوئست:** `images/github-ai-bot-comment-preview.png`
* **موضوع:** اسکرین‌شات از گیت‌هاب با کامنت ربات: «نکته امنیتی: به نظر می‌رسد این متغیر نباید NEXT_PUBLIC_ باشد» و تایید سایر خطوط.
4. **گزارش تلگرامی کرون جاب پاک‌سازی دوره‌ای:** `images/telegram-cron-health-report.png`
* **موضوع:** اسکرین‌شات از پیام ربات تلگرام با خلاصه اقدامات نگهداری نیمه‌شب و وضعیت پایدار دیتابیس.
---
## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`)
1. **تیتر اصلی:** `# اتوماسیون نگهداری و توسعه؛ از تریاژ خودکار ایشیوها تا اسکریپت‌های خودترمیم`
2. **مقدمه:** چگونه کاری کنیم که پروژه حتی زمانی که ما در تعطیلات هستیم، خودش را تمیز کند، باگ‌هایش را گزارش دهد و کدهای جدید را بازرسی نماید؟
3. **جدول کاور درس**
4. **استعاره سرایدار شبانه‌روزی هوشمند ساختمان:**
* چک کردن شیرهای آب، بیرون گذاشتن زباله‌ها و ثبت ترددها بدون بیدار کردن ساکنان.
5. **ساخت ربات بازبین کد (AI Code Reviewer) با GitHub Actions:**
* نوشتن یک فایل YAML ساده در `.github/workflows/ai-review.yml`.
* ارسال کدهای تغییریافته به مدل زبانی و دریافت بازخورد خودکار.
6. **تریاژ خودکار گزارش‌های باگ در گیت‌هاب:**
* تشخیص نوع ایشیو و افزودن خودکار برچسب‌های رنگی.
7. **پاک‌سازی دوره‌ای دیتابیس با وظایف زمان‌بندی‌شده (Cron Jobs):**
* ساخت روت امن `/api/cron/cleanup` در Next.js با احراز هویت توکن `CRON_SECRET`.
* حذف خودکار رکوردهای باطله و حفظ سلامت جداول.
8. **جعبه پرامپت طلایی: طراحی ورک‌فلو گیت‌هاب اکشن برای بازبینی خودکار کد با ایجنت:**
* پرامپت دقیق:
> «من می‌خواهم یک GitHub Action بنویسم که در هنگام ثبت هر Pull Request جدید، تفاوت کدها (Git Diff) را به API هوش مصنوعی بفرستد و بر اساس راهنمای سبک کدنویسی من، کامنت‌های بهبود ساختار و هشدارهای امنیتی را مستقیماً روی PR ثبت کند. فایل کامل YAML و اسکریپت مربوطه را برایم بساز.»
9. **باکس نکته Quera (`<details class="violet">`):** استفاده از سرویس‌های رایگان کرون مانند cron-job.org برای فراخوانی منظم روت‌های پاک‌سازی سرورلس.
10. **باکس هشدار Quera (`<details class="red">`):** هرگز کلیدهای اکشن گیت‌هاب را بدون ماسک در فایل YAML ننویسید؛ همیشه از GitHub Secrets استفاده کنید.
11. **باکس رضایت‌بخش Quera (`<details class="green">`):** ایجاد یک PR آزمایشی و شگفت‌زده شدن از دیدن کامنت‌های فنی و موشکافانه ربات در کمتر از ۳۰ ثانیه.
12. **جمع‌بندی درس‌نامه:** تسلط بر اتوماسیون وظایف روزمره؛ ورود به دنیای استخراج بینش عمیق از داده‌های محصول با هوش مصنوعی در درس بعدی.
---
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- [ ] اصول و مزایای اتوماسیون نگهداری در عصر وایب کدینگ تبیین شود.
- [ ] نحوه پیاده‌سازی ربات بازبین کد در GitHub Actions آموزش داده شود.
- [ ] طراحی روت‌های زمان‌بندی‌شده (Cron Jobs) برای پاک‌سازی دیتابیس ارائه گردد.
- [ ] نمونه کدهای امنیتی برای محافظت از اندپوینت‌های کرون در متن درس گنجانده شود.