On this page
מערך שיעור: Kafka רב-שפתי — C# ו-Python
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים יראו בפועל ש-Kafka לא תלוי בשפה, כהכנה לפרויקטים הצוותיים הרב-שפתיים בהמשך הקורס.
בסוף השיעור הסטודנטים צריכים: לכתוב Consumer בסיסי בPython שמאזין לTopic שProducer ב-C# יצר, ולהסביר את מושג ה-Message Contract.
דגש קריטי: זהו שיעור-גשר ליחידת ה-Python/Pandas הבאה — אין ציפייה לידע Python מוקדם, רק תחביר מינימלי לצורך Consumer בסיסי.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הזכירו JSON כLanguage-Agnostic מהיחידה הראשונה |
| הרעיון: Kafka לא תלוי-שפה | 15 דקות | Producer C#, שאלה: איך Python “מדבר” איתו? |
| הדגמה חיה: Python Consumer | 30 דקות | כתיבה משותפת, תחביר בסיסי מוסבר תוך כדי |
| Message Contract | 15 דקות | הדגישו את החשיבות של תיאום שדות JSON |
| Consumer Group שונה = גם מקבל | 15 דקות | קישרו לשיעור הקודם |
| תרגול מודרך | 10 דקות | תרגיל 1 |
דגשים להעברת השיעור
- הסטודנטים כנראה לא מכירים Python syntax עדיין — כתבו את הConsumer בPython יחד על הלוח/מסך, שורה-שורה, עם הסבר קצר לכל שורה (import, dict access עם
[], f-strings) — לא להניח היכרות מוקדמת. - הדגישו שהמטרה כאן היא לא ללמד Python לעומק (זה מגיע ביחידה הבאה) — רק להראות שKafka עובד זהה מכל שפה.
- Message Contract שווה דיון קצר על תיעוד — איך צוות אמיתי היה מתעד/משתף מבנה JSON בין שירותים בשפות שונות (README משותף, JSON Schema, וכו’).
מושגים
Language-Agnostic Protocol — לא תלוי בשפת מימוש. Message Contract — ההסכם על מבנה ההודעה.
תרגיל חשיבה
שאלת פתיחה: “בפרויקט הצוותי שמגיע בהמשך הקורס, חבר בצוות שלכם יכתוב שירות בPython וחבר אחר בC#. אם תשנו שדה בהודעת JSON בלי לתאם, מה קורה לצד השני?”
מהלך: הובילו לתובנה: השירות השני (בשפה אחרת) לא יקבל שגיאת קומפילציה שמתריעה — הוא פשוט “לא ימצא” את השדה שציפה לו (KeyError בPython, או ערך null/default ב-C#), לרוב בזמן ריצה. זו בדיוק הסיבה שMessage Contract חייב להיות מתועד ומוסכם מראש בין הצוות, לא “מוסכם בעל פה”.
מה המרצה מראה בסוף: שנו שדה בProducer C# (למשל שינוי שם Total→TotalAmount) בלי לעדכן את הConsumer בPython, והריצו — הראו את השגיאה/ההתנהגות המפתיעה שנוצרת. תקנו את שני הצדדים יחד ותנו לזרימה לעבוד תקין מחדש.