משך: 2 שעות אקדמיות (90 דקות).

מטרת השיעור: הצוותים יתכננו את הפרויקט הצוותי המלא — חלוקת בעלות, Interface Contracts, ומבנה עבודה — לפני כתיבת קוד.

בסוף השיעור כל צוות צריך: חלוקת אחריות ברורה, Interface Contracts כתובים לכל תקשורת בין שירותים, ו-Milestone ראשון עם Issues.

דגש קריטי: זהו שיעור עבודה צוותית בעיקרו — הזמן העיקרי הוא תכנון בפועל, לא הרצאה.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותהציגו את מבנה הפרויקט השלם — 4 שירותים, 4 חברי צוות
הבעיה: אינטגרציה בלי חוזה10 דקותדוגמה קצרה לאי-התאמה שהתגלתה מאוחר
הרעיון: Interface Contract20 דקותהדגמה על טופיק אחד, קישרו ל-Bounded Context
Issues/Milestones15 דקותהדגמה קצרה ב-GitHub/כלי דומה
עבודת צוותים: תכנון בפועל40 דקותכל צוות מתכנן, מרצה מסתובב לסייע
סבב שיתוף קצר10 דקותכל צוות משתף חוזה אחד

דגשים להעברת השיעור

  • זהו שיעור עם עומס-תוכן קטן ועומס-עבודה-צוותית גבוה — אל תמלאו את הזמן בהרצאה, השאירו את רוב השיעור לעבודת הצוותים בפועל.
  • הסתובבו בין הצוותים ובדקו במיוחד שה-Interface Contracts מספיק מפורטים (שדות, טיפוסים) — לא רק “Collector שולח ל-Analyzer” בלי פירוט.
  • אם צוות מתקשה להתחיל, הפנו אותם לדוגמת ה-event-collected Contract מדף התוכן כתבנית לחיקוי.

מושגים

Interface Contract — הסכם מפורש על מבנה נתונים בין שירותים. Issue — משימה בודדת מתועדת. Milestone — יעד ביניים משותף.


תרגיל חשיבה

שאלת פתיחה: “שני חברי צוות כותבים Collector ו-Analyzer במקביל, בלי לתאם מראש. מה הסיכוי ששני המבנים (JSON) שהם כתבו יתאימו בדיוק, בלי שום שיחה ביניהם?”

מהלך: תנו לצוותים לדון בקצרה — התשובה האינטואיטיבית (“נמוך”) מובילה ישר לתובנה של השיעור: תיאום מפורש (Interface Contract) הוא לא “בירוקרטיה מיותרת” — הוא מה שהופך עבודה צוותית מקבילה לאפשרית בלי כאוס בסוף.

מה המרצה מראה בסוף: אם יש זמן, בקשו משני צוותים (או שני חברים באותו צוות) לכתוב JSON לדוגמה לאותו תרחיש בלי לדבר ביניהם קודם — ואז השוו. ההבדלים (שמות שדות, טיפוסים, מבנה) ממחישים חי את הבעיה שContract פותר.