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

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

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

האתגר רבעון 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. חלק מהמפתחים התחילו את הקריירה שלהם עם תואר רשמי במדעי המחשב, ואחרים התחילו את הקריירה שלהם באופן עצמאי. חלק מהמפתחים מחפשים באופן פעיל את החידושים ומתעדכנים באמצעות קריאת הערות הגרסה של הדפדפן, ואחרים לומדים על דברים חדשים דרך קולגות וחברים. יש אנשים שחושבים שהמורכבות היא חלק מהעבודה ונהנים מהאתגר, ויש כאלה שרק רוצים לסיים את העבודה. כשחושבים על פתרונות לבעיות האלה, חשוב לזכור את המגוון הזה.

אחד הדברים המשותפים לכל המפתחים הוא שכולם משתמשים במערכת ניהול תוכן (CMS) או במסגרת כדי לבצע את העבודה שלהם. הוזכרו Wordpress,‏ React,‏ Bootstrap,‏ Angular ו-Tailwind, אבל אף אחד מהמפתחים לא השתמש בפלטפורמת האינטרנט הבסיסית בסביבת הייצור. בחירת מסגרת כשמתחילים פרויקט היא אתגר, ומפתחים לעיתים קרובות מביאים בחשבון דרישות לא טכניות. לדוגמה, האם יהיה קל לשכור מפתח שיעבוד עם ה-framework הזו. אנחנו לא יכולים לשפר את הבעיות של המפתחים אם הפתרון לא כולל את סביבות העבודה ומערכות ניהול התוכן.

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

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

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

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

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

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

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

סיכום

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

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

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