מערך שיעור: פרויקט מסכם — EF Core
הקשר: פרויקט-שיא ליחידת SQL ו-EF Core כולה (5 שיעורים קודמים) — כמו הפרויקט המסכם הקודם בקורס (Naive Bayes), זהו שיעור-אינטגרציה: לא מלמדים כלי חדש, רק מחברים.
מטרת הפרויקט: הסטודנטים יבנו פרויקט EF Core שלם — סכמה מנורמלת, SqlRepository מלא, Include נכון, ודוח Window Function אמיתי — בלי לגעת ב-Controller הקיים.
דגשים להנחיה
- לפני העבודה העצמאית, כדאי סבב-חזרה קצר על כל שיעור ביחידה, כדי לוודא שאין פערים לפני שסטודנטים נכנסים לעבודה עצמאית ארוכה.
- הדגישו שאין כאן שום כלי חדש — אם סטודנט נתקע, הכוונה הראשונה היא “לאיזה שיעור זה שייך?” ולא הסבר חדש.
- אם יש הערכה/מבחן על היחידה, זה הזמן הטבעי לקיים אותו — לאחר שהפרויקט המסכם ביסס את ההבנה המעשית.
איך להעריך הצלחה
בדקו שה-TasksController המקורי לא השתנה בכלל — זו ההוכחה שכל העבודה קרתה בשכבת ה-Repository ומטה. וודאו שה-endpoint האנליטי מחזיר דירוג נכון בתוך כל קטגוריה בנפרד (לא דירוג גלובלי), ושאין שאילתות N+1 בשום שליפה שכוללת קטגוריה.
טעויות נפוצות של סטודנטים
- שוכחים
Includeבשליפת הדוח וחוזרים בטעות לבעיית N+1. - לא מעדכנים Migration אחרי הוספת ה-FK בין
Categoryל-TaskItem. - נוגעים ב-
TasksController“כדי לפשט” — מפספסים בדיוק את הנקודה של הפרויקט (הפרדת שכבות).
תרגיל חשיבה
שאלת פתיחה: “עברתם 6 שיעורים ביחידה הזו — עיצוב DB, EF Core, SqlRepository, Queries, Window Functions, ופרויקט מסכם. איזה שיעור הרגיש הכי קשה, ולמה?”
מהלך: תנו לסטודנטים לשקף בקול רם — זו הזדמנות אבחונית טובה לזהות פערי הבנה לפני המעבר ליחידה הבאה (Docker), ולתת לכם כמרצים תמונה של מה שווה לחזק בשיעורי חזרה עתידיים.
מה המרצה מראה בסוף: עברו יחד, שיעור-שיעור, על הפרויקט המלא שנבנה — הצביעו על כל קטע קוד ומאיזה שיעור ספציפי הוא מגיע (הסכמה=שיעור 1, ה-DbContext=שיעור 2, וכו’) — סיכום ויזואלי שממחיש שהפרויקט הוא לא “עוד דבר” אלא בדיוק צירוף של מה שכבר נלמד.