שיעור 0: למה בכלל צריך לתכנן מערכת מראש?
פרויקט אישי עובד מושלם. עשרה משתמשים מתחברים, כותבים, קוראים — הכול מגיב מיידית. שרת אחד, מסד נתונים אחד, קוד שרץ שורה-אחר-שורה (סינכרוני) — למה בכלל לסבך? עכשיו דמיינו את אותו קוד בדיוק, בלי ששורה אחת השתנתה, מול עשרה מיליון משתמשים. פתאום השרת היחיד נחנק, מסד הנתונים היחיד הופך לתור המתנה, והעיבוד
System Design הוא כמו לתכנן כביש לפני שעיר שלמה נבנית סביבו: קל לתקן קו על נייר, קשה מאוד לפרק ולבנות מחדש כביש שכבר מלא במכוניות.
- קנה מידה (Scale)
- כמות המשתמשים, הבקשות או הנתונים שהמערכת צריכה לשרת בו-זמנית. אותו קוד יכול לעבוד מצוין בקנה מידה קטן ולהתמוטט בקנה מידה גדול, גם בלי שום שינוי בלוגיקה שלו.
- Trade-off של קנה מידה
- בחירה מודעת בין שתי תכונות טובות כשאי אפשר למקסם את שתיהן יחד — למשל מהירות מול עקביות, עלות מול אמינות, או פשטות מול גמישות. אין תשובה אחת נכונה; יש רק בחירה שמתאימה לאילוצים הנוכחיים.
- ראיון System Design
- פורמט ראיון טכני נפוץ בחברות רגישות לסקייל, שבודק לא רק אם המועמד/ת כותב/ת קוד תקין, אלא אם הוא/היא יודע/ת לנמק trade-offs תחת אילוצים אמיתיים — בדיוק המיומנות שגם מגנה על מערכות אמיתיות מקריסה.