לדלג לתוכן

11.8 גישה לפרויקט פרונטאנד תרגול

תרגול - גישה לפרויקט פרונטאנד

תרגיל 1 - תכנון פרויקט

בחרו אחד מהפרויקטים הבאים ותכננו אותו:

א. אפליקציית ניהול משימות לצוותים
ב. פלטפורמת בלוג עם מערכת תגובות
ג. דשבורד ניתוח נתונים

עבור הפרויקט שבחרתם, הכינו:
- תיאור הפרויקט (3-5 משפטים)
- רשימת דרישות פונקציונליות (לפחות 8)
- רשימת דרישות לא-פונקציונליות (לפחות 5)
- הגדרת MVP - מה הגרסה המינימלית?
- רשימת דפים/מסכים ראשיים


תרגיל 2 - בחירת Tech Stack

עבור הפרויקט שבחרתם, הציעו Tech Stack מנומק:

  • פריימוורק (ולמה)
  • ספריית UI (ולמה)
  • ניהול סטייט (ולמה)
  • ספריית טפסים
  • פתרון אימות
  • מסד נתונים ו-ORM
  • פלטפורמת פריסה
  • כלי בדיקות

לכל בחירה, הסבירו למה בחרתם בכלי הזה ולא באלטרנטיבות.


תרגיל 3 - מבנה פרויקט

צרו את מבנה התיקיות המלא של הפרויקט שלכם:

  • כל התיקיות והקבצים הראשיים
  • הסבר קצר לכל תיקייה
  • דוגמה לקובץ index.ts שמייצא מתיקיית components

בנוסף, צרו דיאגרמת ארכיטקטורה שמראה:
- כיצד הנתונים זורמים מהשרת ללקוח
- היכן יושב ניהול הסטייט
- כיצד האימות עובד


תרגיל 4 - הגדרת כלי פיתוח

הגדירו סביבת עבודה מקצועית שכוללת:

  • ESLint עם כללים מותאמים (כולל React Hooks ונגישות)
  • Prettier עם הגדרות
  • Husky עם pre-commit hook שמריץ lint-staged
  • commitlint עם Conventional Commits
  • קובץ .editorconfig
  • קובץ .nvmrc לנעילת גרסת Node.js
  • קובץ .env.example

כתבו את כל קבצי ההגדרות.


תרגיל 5 - פירוק משימות

פרקו את הפרויקט שלכם למשימות:

  • חלקו לאבני דרך (milestones) של שבוע-שבועיים
  • בכל אבן דרך, פרטו את המשימות הספציפיות
  • הערכת זמן לכל משימה (בשעות)
  • סדר עדיפויות (P0 - קריטי, P1 - חשוב, P2 - נחמד)
  • זיהוי תלויות בין משימות

חשבו על כל שלב מ-setup ראשוני ועד פריסה ובדיקות.


תרגיל 6 - כתיבת README

כתבו README מלא לפרויקט שלכם שכולל:

  • שם ותיאור הפרויקט
  • צילום מסך או GIF של האפליקציה (placeholder)
  • דרישות מקדימות
  • הוראות התקנה מפורטות (שלב אחרי שלב)
  • רשימת סקריפטים זמינים
  • מבנה הפרויקט עם הסברים
  • רשימת טכנולוגיות
  • הוראות לתרומה (contributing guidelines)
  • רישיון

שאלות

  1. מה ההבדל בין דרישות פונקציונליות ודרישות לא-פונקציונליות? תנו 3 דוגמאות לכל סוג.
  2. מדוע חשוב להגדיר MVP? מה הסיכון של לא להגדיר?
  3. הסבירו את ההבדל בין Git Flow ל-Trunk-Based Development. מה מתאים יותר לצוותים קטנים?
  4. למה חשוב להשתמש ב-Conventional Commits? מה היתרון שלהם?
  5. כיצד מעריכים זמן לפיתוח פיצ'ר? מה הטעויות הנפוצות בהערכת זמנים?