Files

11 KiB
Raw Permalink Blame History

مشخصات درس‌نامه: فیچرها و معیارهای پذیرش (Features & Acceptance Criteria)

  • شناسه در سیلابس: L4.6
  • فصل: فصل ۴: از ایده تا محصول (Ch 4)
  • نوع محتوا: 📘 درس‌نامه متنی
  • زمان تقریبی مطالعه: ۱۵ دقیقه
  • پیش‌نیازهای مستقیم: L4.5 (محدوده محصول و تعریف MVP)

۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)

دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:

  • درک کند (Understand): تفاوت اساسی میان یک ویژگی کلی (Feature) با معیارهای پذیرش شفاف و سنجش‌پذیر (Acceptance Criteria - AC) چیست.
  • تحلیل/ارزیابی کند (Evaluate): چرا ارائه معیارهای پذیرش دقیق به ایجنت‌های هوش مصنوعی، خطاهای پیاده‌سازی و نادیده گرفتن حالت‌های خطا (Edge Cases) را به حداقل می‌رساند.
  • به‌کار ببندد (Apply): الگوی استاندارد Given-When-Then (فرض کنید - هنگامی که - آن‌گاه) را برای توصیف سناریوهای آزمون فیچرها به کار گیرد.
  • به‌کار ببندد (Apply): معیارهای پذیرش شفاف را برای فیچرهای کلیدی پروژه محوری (ورود ادمین، مدیریت پروژه‌ها و پنل متادیتا سئو) فرمول‌بندی کند.
  • تحلیل/ارزیابی کند (Evaluate): عبارات کیفی و مبهم (مانند «فرم زیبا باشد» یا «سرعت بالا باشد») را با شروط مشخص و قابل راستی‌آزمایی جایگزین کند.

۲. محدوده و مرزهای محتوا (Scope & Boundaries)

آنچه باید پوشش داده شود (In-Scope):

  1. معماری فیچر و راز پایان ابهام در وایب کدینگ:
    • وقتی به هوش مصنوعی می‌گویید «یک فرم برای اضافه کردن پروژه بساز»، او یک فرم ساده بدون اعتبارسنجی، بدون پیام خطا، بدون لودینگ و بدون تایید ذخیره می‌سازد!
    • برای اینکه خروجی حرفه‌ای باشد، باید «معیار پذیرش» (شرط قبولی تحویل کار) را تعیین کنید.
  2. الگوی طلایی Given-When-Then (چارچوب رفتاری BDD):
    • Given (فرض کنید): وضعیت اولیه سیستم یا کاربر کجاست؟ (مثلاً: فرض کنید ادمین لاگین کرده و در پنل مدیریت است).
    • When (هنگامی که): کاربر چه رویدادی را آغاز می‌کند؟ (مثلاً: فیلدهای عنوان و لینک را پر کرده و روی دکمه «ذخیره» کلیک می‌کند).
    • Then (آن‌گاه): نتیجه دقیق و بدون ابهام چیست؟ (مثلاً: پیام توست سبز نمایش داده شود، فرم بسته شود و پروژه جدید به بالای لیست پروژه‌ها بدون رفرش صفحه اضافه گردد).
  3. تدوین معیارهای پذیرش سه فیچر کلیدی پروژه محوری (پورتفولیوی پویا):
    • فیچر ۱: احراز هویت و ورود ادمین (Admin Auth):
      • شرط ۱: اگر رمز عبور اشتباه وارد شود \rightarrow پیام خطای قرمزرنگ «رمز عبور نادرست است» نمایش داده شود و کاربر وارد نشود.
      • شرط ۲: اگر رمز درست بود \rightarrow کوکی سشن ایمن ست شود و کاربر به آدرس /admin هدایت گردد.
      • شرط ۳: اگر کاربری بدون لاگین به آدرس /admin رفت \rightarrow خودکار به صفحه لاگین ریدایرکت شود (Route Guard).
    • فیچر ۲: فرم ایجاد و ویرایش پروژه (Project Management):
      • شرط ۱: فیلدهای «عنوان» و «تصویر» الزامی باشند و در صورت خالی بودن دکمه ذخیره پیام هشدار بدهد.
      • شرط ۲: امکان انتخاب چندین تگ مهارتی (مثل Next.js, Tailwind, Supabase) وجود داشته باشد.
      • شرط ۳: دکمه حذف باید دارای پنجره تایید نهایی (Confirmation Modal) باشد تا از حذف تصادفی جلوگیری کند.
    • فیچر ۳: پنل تنظیمات سئو (SEO Management Panel):
      • شرط ۱: فرم دارای فیلدهای عنوان سئو (حداکثر ۶۰ کاراکتر)، توضیحات متا (حداکثر ۱۶۰ کاراکتر) و آدرس تصویر OG باشد.
      • شرط ۲: شمارنده تعداد کاراکتر به صورت زنده نمایش داده شود و در صورت رد شدن از سقف رنگش قرمز شود.
      • شرط ۳: با ذخیره تنظیمات، تگ‌های <title> و <meta> در سورس صفحه اصلی فوراً آپدیت شوند.
  4. پرامپت استخراج معیارهای پذیرش با هوش مصنوعی:
    • پرامپت حرفه‌ای: «این فیچر را در نظر بگیر؛ تمام حالت‌های مرزی (Edge Cases)، خطاهای اعتبارسنجی و سناریوهای کاربری را در قالب Given-When-Then برای من استخراج کن.»
  5. کال‌اوت‌های Quera:
    • <details class="violet">: قدرت الگوی Given-When-Then؛ چگونه بدون نوشتن یک خط کد تست، ایجنت را در ریل درست تست‌نویسی قرار دهیم؟
    • <details class="red">: تله واژگان مبهم؛ هرگز در معیارهای پذیرش از کلمات «زیبا»، «سریع»، «مدرن» یا «راحت» استفاده نکنید؛ اعداد، رنگ‌ها و رفتارها را دقیق بنویسید.

آنچه نباید وارد آن شویم (Out-of-Scope):

  • تفکیک تفصیلی شاخص‌های معماری و نیازمندی‌های غیرکارکردی (درس بعدی ۴.۷).
  • پیاده‌سازی کدهای اعتبارسنجی Zod یا React Hook Form (در فصل‌های ۶ و ۷).

۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)

اصطلاح انگلیسی معادل فارسی مصوب توضیح یک‌خطی ساده
Acceptance Criteria (AC) معیارهای پذیرش مجموعه‌ای از شروط شفاف و آزمون‌پذیر که یک فیچر برای تایید نهایی باید داشته باشد
Given-When-Then فرض کنید - هنگامی که - آن‌گاه الگوی ساخت‌یافته استاندارد برای بیان سناریوهای آزمون رفتار کاربر در نرم‌افزار
Edge Case حالت مرزی موقعیت خاص و استثنایی در اجرای نرم‌افزار (مانند ورودی نامعتبر، دیسکانکت شدن اینترنت)
Route Guard محافظ مسیر / گیت دسترسی سازوکاری که مانع ورود کاربران تاییدنشده به صفحات خصوصی و پنل ادمین می‌شود
Toast Notification پیام اعلان توست پیام کوچک و موقتی که در گوشه صفحه برای اعلام موفقیت یا خطای یک عملیات ظاهر می‌شود

۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)

راهنمای ایجنت نویسنده: تمام تصاویر باید در پوشهٔ images/ قرار گرفته و در قالب جدول تک‌خانه‌ای وسط‌چین با کپشن تفصیلی درج شوند:

  1. تصویر کاور درس: images/cover.png
    • موضوع: کاور مدرن با تم تیره و چک‌لیست سبز هولوگرافیک دیجیتال که مهر تایید قبولی (Approved) را روی کارت یک فیچر ثبت می‌کند.
  2. کالبدشکافی فیچر در برابر معیارهای پذیرش: images/feature-vs-ac-breakdown.png
    • موضوع: مقایسه دو کارت: کارت عنوان کلی فیچر («فرم ایجاد پروژه») در برابر لیست ۵ شرط قبولی شفاف و بدون ابهام.
  3. دیاگرام سه‌گانه Given-When-Then: images/given-when-then-loop.png
    • موضوع: اینفوگرافیک چرخشی ۳ رنگ: ۱. وضعیت اولیه (Given) \rightarrow ۲. رویداد و کنش (When) \rightarrow ۳. نتیجه قطعی (Then).
  4. معیارهای قبولی پنل سئو پورتفولیو در عمل: images/seo-ac-visual-card.png
    • موضوع: ماکت رابط پنل سئو با نمایش فیلد تایتل، شمارنده ۶۰ کاراکتر و فلش شرط‌های تایید سبز.

۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (README.md)

  1. تیتر اصلی: # فیچرها و معیارهای پذیرش: هنر شفاف‌سازی شروط قبولی
  2. مقدمه: چرا هوش مصنوعی بدون معیارهای پذیرش، خروجی‌های ناقص و پر از باگ تحویل می‌دهد؟
  3. جدول کاور درس
  4. تفاوت بنیادین فیچر (ویژگی) با معیار پذیرش (AC): از عنوان تا جزئیات آزمون‌پذیر.
  5. الگوی طلایی Given-When-Then: چارچوب مهندسی برای نگارش شروط قبولی.
  6. باکس شگفت‌انگیز Quera (<details class="violet">): چگونه با Given-When-Then رفتار ایجنت را قفل کنیم؟
  7. کالبدشکافی معیارهای قبولی در ۳ فیچر پورتفولیوی پویا:
    • فیچر ۱: سیستم لاگین و محافظت از پنل ادمین.
    • فیچر ۲: فرم‌های مدیریت و ویرایش پروژه‌ها.
    • فیچر ۳: پنل تنظیمات متا تگ‌های سئو همراه با شمارنده کاراکتر.
  8. استخراج شروط مرزی (Edge Cases) با کمک هوش مصنوعی: پرامپت منتقد حالت‌های شکست.
  9. باکس هشدار Quera (<details class="red">): مرگ بر صفت‌های مبهم! پرهیز از کلماتی مثل زیبا و سریع در تعریف معیار.
  10. جمع‌بندی درس‌نامه: تسلط بر مهارت نگارش شرط‌های قبولی و آماده‌سازی برای تحلیل نیازمندی‌های کیفی و فنی.

۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)

  • تمایز میان Feature و Acceptance Criteria با مثال‌های قابل درک روشن شده باشد.
  • چارچوب Given-When-Then به همراه ساختار منطقی در متن آموزش داده شود.
  • معیارهای قبولی برای ۳ بخش اصلی پروژه محوری (لاگین، مدیریت پروژه، پنل سئو) به طور کامل مستند شده باشد.
  • نقد واژگان مبهم کیفی و لزوم شفافیت عددی و رفتاری به صراحت در متن حضور داشته باشد.