On this page
מערך שיעור: תכנון הפרויקט הצוותי
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הצוותים יתכננו את הפרויקט הצוותי המלא — חלוקת בעלות, Interface Contracts, ומבנה עבודה — לפני כתיבת קוד.
בסוף השיעור כל צוות צריך: חלוקת אחריות ברורה, Interface Contracts כתובים לכל תקשורת בין שירותים, ו-Milestone ראשון עם Issues.
דגש קריטי: זהו שיעור עבודה צוותית בעיקרו — הזמן העיקרי הוא תכנון בפועל, לא הרצאה.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הציגו את מבנה הפרויקט השלם — 4 שירותים, 4 חברי צוות |
| הבעיה: אינטגרציה בלי חוזה | 10 דקות | דוגמה קצרה לאי-התאמה שהתגלתה מאוחר |
| הרעיון: Interface Contract | 20 דקות | הדגמה על טופיק אחד, קישרו ל-Bounded Context |
| Issues/Milestones | 15 דקות | הדגמה קצרה ב-GitHub/כלי דומה |
| עבודת צוותים: תכנון בפועל | 40 דקות | כל צוות מתכנן, מרצה מסתובב לסייע |
| סבב שיתוף קצר | 10 דקות | כל צוות משתף חוזה אחד |
דגשים להעברת השיעור
- זהו שיעור עם עומס-תוכן קטן ועומס-עבודה-צוותית גבוה — אל תמלאו את הזמן בהרצאה, השאירו את רוב השיעור לעבודת הצוותים בפועל.
- הסתובבו בין הצוותים ובדקו במיוחד שה-Interface Contracts מספיק מפורטים (שדות, טיפוסים) — לא רק “Collector שולח ל-Analyzer” בלי פירוט.
- אם צוות מתקשה להתחיל, הפנו אותם לדוגמת ה-
event-collectedContract מדף התוכן כתבנית לחיקוי.
מושגים
Interface Contract — הסכם מפורש על מבנה נתונים בין שירותים. Issue — משימה בודדת מתועדת. Milestone — יעד ביניים משותף.
תרגיל חשיבה
שאלת פתיחה: “שני חברי צוות כותבים Collector ו-Analyzer במקביל, בלי לתאם מראש. מה הסיכוי ששני המבנים (JSON) שהם כתבו יתאימו בדיוק, בלי שום שיחה ביניהם?”
מהלך: תנו לצוותים לדון בקצרה — התשובה האינטואיטיבית (“נמוך”) מובילה ישר לתובנה של השיעור: תיאום מפורש (Interface Contract) הוא לא “בירוקרטיה מיותרת” — הוא מה שהופך עבודה צוותית מקבילה לאפשרית בלי כאוס בסוף.
מה המרצה מראה בסוף: אם יש זמן, בקשו משני צוותים (או שני חברים באותו צוות) לכתוב JSON לדוגמה לאותו תרחיש בלי לדבר ביניהם קודם — ואז השוו. ההבדלים (שמות שדות, טיפוסים, מבנה) ממחישים חי את הבעיה שContract פותר.