102 lines
12 KiB
Markdown
102 lines
12 KiB
Markdown
# مشخصات درسنامه: اتوماسیون نگهداری و توسعه؛ از تریاژ خودکار ایشیوها تا اسکریپتهای خودترمیم
|
||
- **شناسه در سیلابس:** `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) برای پاکسازی دیتابیس ارائه گردد.
|
||
- [ ] نمونه کدهای امنیتی برای محافظت از اندپوینتهای کرون در متن درس گنجانده شود.
|