אוסף תובנות לגבי נקודות החולשה העיקריות של המפתחים, שנאספו ממספר שיחות אישיות.
לפני כמה חודשים, פול קילן פרסם פוסט על הבעיות העיקריות של מפתחים ב-2021, ולכן נראה לנו מתאים להתחיל את המאמר הזה עם עדכון לגבי 2 הרבעונים האחרונים. המספרים השתנו מעט, אבל הדירוג לא השתנה.
האתגר | רבעון 1 של שנת 2021 | רבעון 2 של שנת 2021 | רבעון 3 של שנת 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 מפתחים. המטרה שלנו היא לבדוק את הבעיות העיקריות של המפתחים ולנסות להבין איך לפתור אותן.
דיונים למפתחים
כתב ויתור: התובנות האלה מבוססות על מספר קטן של שיחות עם מפתחים. כשמשתמשים ב'הכול' או ב'חלק', הכוונה היא למפתחים שראיינו, ולא לקהילה כולה. נדרשים מחקרים נוספים כדי להסיק תובנות רחבות יותר מהנתונים האלה.
השיחות האלה היו תזכורת נהדרת למה שמיוחד ומגוון בקהילה של מפתחי האינטרנט, ואני רוצה להודות לכל המפתחים ששוחחו איתנו. לחלק מהמפתחים היה ניסיון של יותר מ-25 שנה, בעוד שאחרים התחילו רק בשנת 2020. חלק מהמפתחים התחילו את הקריירה שלהם עם תואר רשמי במדעי המחשב, ואחרים התחילו את הקריירה שלהם באופן עצמאי. חלק מהמפתחים מחפשים באופן פעיל את מה שחדש ומעודכנים על ידי קריאת הערות לגרסאות חדשות של הדפדפן, בעוד שאחרים לומדים על דברים חדשים דרך עמיתים וחברים. יש אנשים שרואים במורכבות חלק מהעבודה ונהנים מהאתגרים, ויש כאלה שפשוט רוצים לסיים את העבודה. כשאנחנו חושבים על דרכים לפתרון נקודות החולשה האלה, חשוב לזכור את המגוון הזה.
אחד הדברים המשותפים לכל המפתחים הוא שכולם משתמשים במערכת ניהול תוכן או ב-framework כדי לבצע את העבודה שלהם. הוזכר שם כל מה שאפשר: WordPress, React, Bootstrap, Angular ו-Tailwind. אף אחד מהמפתחים לא השתמש בפלטפורמת האינטרנט הבסיסית בסביבת הייצור. בחירת מסגרת כשמתחילים פרויקט היא אתגר, ומפתחים לרוב מביאים בחשבון דרישות לא טכניות. לדוגמה, האם יהיה קל למצוא מפתח שעובד עם המסגרת הזו. אנחנו לא יכולים לשפר את נקודות החולשה של המפתחים אם המסגרות והמערכות לניהול תוכן לא נכללות בפתרון.
לגבי פלטפורמת האינטרנט, רוב המפתחים מבינים את הפלטפורמה כבסיס שבו הם מפתחים. ההגדרה הזו כוללת לא רק את ההגדרה הקלאסית של פלטפורמת האינטרנט, אלא גם את מערכות ניהול התוכן, המסגרת, הכלים וה-polyfills. ברוב המקרים, הבעיה הגדולה ביותר היא לעמוד בקצב של השינויים האלה. בעקבות זאת, שינינו את הפרשנות שלנו לשאלה הזו, ועכשיו ברור לנו שאנחנו צריכים לעדכן את הסקר ולחלק אותו לחלקים שונים עם פחות משמעות כפולה.
תחום לא ברור נוסף הוא ההגדרה של תקני אינטרנט. כששאלנו את המפתחים מהן דוגמאות לבעיות שקשורות להתאמה לתקנים, הרבה מהם הצביעו על קשיים בהתאם לשיטות המומלצות. זהו תחום נוסף שאנחנו צריכים להבהיר בסקר.
מפתחים מחפשים שיטות מומלצות להטמעת דפוסים ותרחישי שימוש ספציפיים. פוסטים בבלוגים ו-StackOverflow מוזכרים כמקורות לשיטות מומלצות, אבל מפתחים רבים תוהים לעתים קרובות אם המידע שהם קוראים הוא אכן השיטה המומלצת, ואם הוא עדכני לגבי התכונות והממשקי ה-API העדכניים ביותר. הם רוצים לקרוא אותם ממקור רשמי יותר.
לעומת זאת, הבעיה הקטנה יותר היא להתעדכן בתכונות ובממשקי API שמאפשרים תרחישי שימוש חדשים. מפתחים מתקשים יותר עם תכונות, ממשקי API ושינויים בפלטפורמה שמובילים לשינוי בשיטות המומלצות.
רוב המפתחים מסכימים שאחד האתגרים הגדולים ביותר הוא תאימות. המצב משתפר בעזרת מאמצים כמו Compat 2021 ו-Interop 2022, אבל ברור שהמפתחים עדיין לא רואים בכך בעיה שנפתרה.
רוב המפתחים משתמשים ב-polyfills בדרך כזו או אחרת. עם זאת, במקרים רבים השימוש שקוף למפתחים, כי אפשר להוסיף את ה-polyfill באופן אוטומטי באמצעות כלי כמו Babel או מסגרת. אם אתם מנהלים את הפוליפילים בעצמכם, יכול להיות שתתקשו להבין אם פוליפיל מסוים הוא 'טוב'. המפתחים הזכירו שהם משתמשים במספר ההתקנות ב-NPM וביוצר של ה-polyfill כאותות. כמה מפתחים ציינו שהם עבדו על הסרת polyfills שהפכו ללא נחוצים בגלל הפסקת התמיכה ב-IE 11.
שימוש במסגרות גורם לבעיות של פיצול. קיבלנו דיווחים על מפתחים שנתקעו בגרסה ישנה יותר של מסגרת עבודה, ולכן היו מוגבלים בתכונות שבהן הם יכלו להשתמש, אבל המעבר לגרסה חדשה יותר של אותה מסגרת עבודה עלול להיות יקר וקשה להצדיק אותו.
סיכום
פיתוח אתרים מודרני כולל הרבה רכיבים נעים, כולל סטנדרטים, דפדפנים, ספריות, polyfills, מערכות ניהול תוכן, frameworks, שיטות מומלצות וכלים. המגוון הזה הוא אחד מהדברים הנהדרים באינטרנט, אבל כרגע כל מפתח צריך להבין בנפרד את כל החלק הזה ואת האופן שבו הוא תואם לחלקים האחרים.
האם יש דרך להסביר למפתחים בצורה ברורה יותר איך כל הדברים קשורים זה לזה, ולסנכרן טוב יותר בין כל החלקים, בלי להתפשר על המגוון? זו בעיה גדולה ומורכבת, וקשה לפתור אותה בבת אחת. אבל איפה מתחילים?
אם יש לכם דעות שתרצו לשתף. אשמח לדבר איתך גם. אגדיר דרך לקבוע שיחות ישירות, אבל בינתיים ההודעות שלי בצ'אט ישיר פתוחות ב-Twitter. אפשר לפנות אלינו ונוכל לקבוע מועד לשיחה בצ'אט.