מתעמקים בבעיות העיקריות של מפתחי האתרים

אוסף של תובנות לגבי הבעיות הנפוצות ביותר של המפתחים, שנאספו מכמה שיחות במקביל.

לפני כמה חודשים, פול קינלן פרסם מידע על הבעיות העיקריות של המפתחים בשנת 2021, ולכן כדאי להתחיל את המאמר הזה בעדכון לגבי 2 הרבעונים האחרונים. המספרים השתנו קצת, אבל הדירוג לא השתנה.

אתגר רבעון 1 2021 רבעון שני 2021 רבעון שלישי 2021 רבעון 4 2021
עמידה בשינויים בפלטפורמת האינטרנט או בתקני האינטרנט. 27% 26% 27% 22%
התעדכנות במספר גדול של כלים ומסגרות חדשים וקיימים. 26% 26% 25% 21%
עיצוב או חוויה פועלים באופן זהה בדפדפנים שונים. 26% 28% 24% 21%
בדיקה בכל הדפדפנים. 23% 24% 20% 20%
הבנה והטמעה של אמצעי אבטחה. 23% 25% 20% 19%

כפי שצוין בפוסט בבלוג של פול, עלינו לטפל בבעיות האלה. כחלק ממאמץ נרחב יותר לשם כך, הקולגה שלי Kadir Topal ואני ראיינו יותר מ-18 מפתחים. המטרה שלנו היא לחקור ולהבין את הדרך לפתרון הבעיות העיקריות של המפתחים.

דיונים למפתחים

כתב ויתור: התובנות האלה מבוססות על מספר קטן של שיחות עם מפתחים. כשמשתמשים באפשרות 'הכול' או 'Some', הכוונה היא למפתחים שרואיינו ולא לקהילה כולה. נדרש מחקר נוסף כדי לבצע הערכות על התובנות האלה באופן נרחב יותר.

השיחות האלה היו תזכורת נהדרת עד כמה קהילת מפתחי האתרים היא מדהימה ומגוונת, ואני רוצה להודות לכל המפתחים שדברו איתנו. לחלק מהמפתחים יש יותר מ-25 שנות ניסיון, ויש מפתחים אחרים שהתחילו את התהליך רק ב-2020. חלק מהמפתחים התחילו את הקריירה שלהם באמצעות תואר רשמי במדעי המחשב, ואחרים התחילו את הקריירה שלהם באופן עצמאי. חלק מהמפתחים מחפשים באופן פעיל מה חדש ומתעדכנים על ידי קריאת נתוני הגרסה של הדפדפן, בעוד שאחרים לומדים על דברים חדשים מעמיתים וחברים. יש כאלה שחושבים שהם חלק מהעבודה ואוהבים לעמוד באתגרים, ויש אנשים שפשוט רוצים לבצע את העבודה. כשחושבים לפתור את הבעיות האלה, חשוב לשמור על הגיוון הזה במוחנו.

אחד הדברים הנפוצים אצל כל המפתחים הוא שכולם משתמשים במערכת ניהול תוכן או ב-framework כדי לבצע את העבודה. הוזכרו ב-Wordpress, ב-React, ב-bootstrap, ב-Agular וב-Tailwind, ואף אחד מהמפתחים לא השתמש בפלטפורמת האינטרנט vanilla בסביבת הייצור. בחירת מסגרת עבודה בזמן התחלת פרויקט היא מאתגרת, ומפתחים מביאים בחשבון לעיתים קרובות דרישות לא טכניות. לדוגמה, האם יהיה קל להעסיק מפתח שיעבוד עם המסגרת הזו. אנחנו לא יכולים לשפר את נקודות החולשה של המפתחים אם frameworks ומערכות ניהול תוכן לא נכללות בפתרון.

ואם כבר מדברים על פלטפורמת האינטרנט, רוב המפתחים מבינים שהפלטפורמה היא הדבר שהם מפתחים שעליה הם מפתחים. זה כולל לא רק את ההגדרה הקלאסית של פלטפורמת האינטרנט, אלא גם את מערכות ניהול התוכן, ה-framework, הכלים ו-polyfills. במקרים רבים, הקושי הגדול ביותר הוא להתמודד איתם. כך הפרשנות שלנו לשאלה הזו השתנתה, ועכשיו אנחנו יודעים שעלינו לעדכן את הסקר כך שיפוצל לחלקים שונים ופחות ברורים.

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

המפתחים מחפשים שיטות מומלצות במהלך הטמעה של תרחישים לדוגמה ודפוסים ספציפיים. פוסטים בבלוגים ו-StackOverflow מוזכרים כמקורות לשיטות מומלצות, אבל לעיתים קרובות מפתחים תוהים אם המידע שהם קוראים הוא אכן השיטה המומלצת ואם הוא עדכני בתכונות ובממשקי ה-API החדשים ביותר. הם מעוניינים במקור רשמי יותר לקרוא את ההנחיות.

קשה יותר לעמוד בקצב של התכונות וממשקי ה-API שמאפשרים תרחישים חדשים לדוגמה. המפתחים מתקשים יותר עם תכונות, ממשקי API ושינויים בפלטפורמה, שגורמים לשינוי בשיטות המומלצות.

רוב המפתחים מסכימים שתאימות היא אחד מהאתגרים הגדולים ביותר. אנחנו משפרים את הדברים בעזרת המאמצים כמו Compat 2021 ו-Interop 2022, אבל ברור שהמפתחים עדיין לא רואים בכך בעיה כלשהי.

רוב המפתחים משתמשים ב-polyfills בדרך אחת או אחרת. עם זאת, במקרים רבים השימוש שקוף למפתחים, מכיוון שכלי כמו Babel או framework יכול להוסיף את ה-polyfill באופן אוטומטי. לאנשים שמנהלים את ה-polyfills שלהם בעצמם, ובודקים אם polyfill הוא "טוב" יכולה להיות בעיה. המפתחים שהוזכרו על ידי שימוש במספר ההתקנות ב-NPM והיוצר של ה-polyfill כאותות. כמה מפתחים הזכירו שעשו עבודה להסרת polyfills שלא נחוצה עקב הפסקת התמיכה ב-IE 11.

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

סיכום

לפיתוח אתרים מודרני יש הרבה חלקים, כולל תקנים, דפדפנים, ספריות, polyfills, מערכות ניהול תוכן, frameworks, שיטות מומלצות וכלים. המגוון הזה הוא אחד היתרונות הנהדרים של האינטרנט, אבל נכון לעכשיו, כל מפתח צריך להבין כל פריט בנפרד ולהבין איך הם תואמים זה לזה.

מעניין אם יש דרך להבהיר למפתחים איך הכול עובד ביחד וליישר קו בין כל החלקים, בלי לוותר על המגוון התרבותי. זו בעיה גדולה ומורכבת, וקשה לעשות את כולן בבת אחת. אבל איפה מתחילים?

אם יש לכם דעות שתרצו לשתף. אשמח לדבר איתך. אני רוצה לקבוע איתך פגישות ישירות, אבל בינתיים הצ'אטים שלך פתוחים ב-Twitter. אבקש ממך ליצור קשר ונוכל לדבר איתך.