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)
- רישיון
שאלות¶
- מה ההבדל בין דרישות פונקציונליות ודרישות לא-פונקציונליות? תנו 3 דוגמאות לכל סוג.
- מדוע חשוב להגדיר MVP? מה הסיכון של לא להגדיר?
- הסבירו את ההבדל בין Git Flow ל-Trunk-Based Development. מה מתאים יותר לצוותים קטנים?
- למה חשוב להשתמש ב-Conventional Commits? מה היתרון שלהם?
- כיצד מעריכים זמן לפיתוח פיצ'ר? מה הטעויות הנפוצות בהערכת זמנים?