התלמוד של המפתחהתלמוד של המפתח

מסכת ביצועים

מסכת הפרונטאנד

2 הלכות

א

JavaScript כבד

הטוען JavaScript בן חמישה מגה-בייט לדף בית שיש בו כפתור אחד ותמונה — חייב. המוסיף ספריה שלמה בשביל פונקציה אחת — חייב. המכניס גופן מגוגל, ספריית אנימציות, סליידר, ומפה אינטראקטיבית לדף "צור קשר" שיש בו שדה מייל בלבד — יצא ידי כולם לרעה.

אמר רב פפא: ראיתי אתר שציון ה-Lighthouse שלו היה שלושה עשר. שאלתי: כיצד? אמרו: יש לנו הרבה פיצ'רים. אמרתי: כן, ראיתי. שישה עשר ספריות JavaScript, שלושה עשר גופנים שונים, ווידאו שמתנגן לבד ברקע, ותמונות JPEG שכל אחת משקל שישה מגה-בייט. אמרו: אבל זה נראה יפה. אמרתי: יפה לא יעזור כשמשתמש מחכה שתיים עשרה שניות לטעינה ועבר לאתר המתחרה.

מחלוקת
רב יוסף אומר:

Bundle שגדל עם כל ספרינט — דינו כחוב טכני.

אביי חולק ואומר:

דינו כשומן שמצטבר — לא מורגש ביום, מורגש בשנה.

רבא:

דינו כשניהם. ועוד גרוע מהם, שכן חוב טכני לפחות יודעים שיש אותו. Bundle שגדל — מגלים אותו רק כשהלקוח מתקשר ואומר "האתר שלכם נטען לאט על הנייד." ואז יושבים שלושה ימים ועושים Tree Shaking, Lazy Loading, Code Splitting — ומרגישים גיבורים. ואחרי שבועיים מוסיפים ספריה חדשה ומתחיל הכל מחדש.

ב

שלושה דברים שמתחרטים עליהם

שלושה דברים שאדם מוסיף לפרונטאנד ומתחרט עליהם לאחר מכן, ואלו הן: moment.js, jQuery בשנת אלפיים ועשרים וחמש, וספריית אנימציות בת שלושה מגה-בייט לאנימציה של כפתור שמתרחב בריחוף.

moment.js — ספריה נהדרת, כבדה כפיל, ויש לה תחליף קל שנקרא date-fns שכולם יודעים ואיש אינו עובר אליו כי "יש לנו כבר moment." jQuery בשנת אלפיים ועשרים וחמש — לא נאמר יותר. ספריית אנימציות בת שלושה מגה-בייט — אמרו חכמים: CSS transition של שתי שורות עושה את אותו הדבר. לא שמעו. לא ישמעו.