Deep Dive בתכנון: Chat, Notifications ו-Feed
בשיעור הזה נתרגל איך עונים בראיון על שאלות כמו: לבנות צ'אט, פיד (feed — רשימת העדכונים של חברים שלך, כמו במדיה החברתית) והתראות (notifications — ההודעות שקופצות בטלפון). נדבר בפשטות על fanout (פיזור — לשלוח את אותו עדכון להרבה אנשים בבת אחת, כמו הודעה קבוצתית), על ordering (סדר — באיזה סדר ההודעות מ
System Design (תכנון מערכות — איך בונים תוכנה גדולה שעובדת) הוא כמו לתכנן עיר: כבישים שמובילים את התנועה, מחסנים לאחסון, רמזורים שמסדרים את העומס וצוותי תחזוקה שמתקנים תקלות — כך שהעיר תמשיך לעבוד יפה גם בשעות העומס הכי גדולות.
- Real-time ו-feed
- השאלה הקלאסית שמתרגלים בשיעור: לתכנן מערכות בזמן אמת — צ'אט, פיד (feed — רשימת עדכוני החברים) והתראות. עוברים על fanout (פיזור עדכון להרבה אנשים בבת אחת), ordering (הסדר שבו ההודעות מופיעות), delivery guarantees (איך מוודאים שההודעה הגיעה) ו-push (דחיפת התראה לטלפון).
- Trade-off
- Trade-off (פשרה) זו בחירה מודעת בין שני דברים טובים, כשאי אפשר לקבל את שניהם במלואם — בדיוק כמו לבחור בין מהיר לזול. תמיד יש מחיר, ובראיון מסבירים אותו למראיין/ת בקול.
- מדד תפעולי
- מספר שמראה אם ההחלטה באמת עובדת אצל המשתמשים האמיתיים (בפרודקשן — המערכת החיה). למשל: latency (כמה זמן לוקח לקבל תשובה), error rate (אחוז הבקשות שנכשלות), queue lag (כמה עבודה הצטברה בתור וממתינה), או cache hit ratio (כמה פעמים הזיכרון המהיר כבר ידע את התשובה).