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

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

אנדרה סיפריאני בנדרה
אנדרה סיפריאני בנדרה

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

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

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

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

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

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

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

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

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

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

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

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

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

סיכום

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

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

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