کاوش عمیق در چالش‌های عمده توسعه‌دهندگان وب برتر

مجموعه‌ای از اطلاعات آماری درباره چالش‌های عمده توسعه‌دهندگان که ازطریق تعدادی مکالمه یک‌به‌یک جمع‌آوری شده است.

چند ماه پیش، Paul Kinlan درباره چالش‌های عمده توسعه‌دهندگان در سال ۲۰۲۱ پستی منتشر کرد، بنابراین مناسب به‌نظر می‌رسد که این مقاله را با به‌روزرسانی‌ای درباره ۲ سه‌ماهه گذشته شروع کنیم. اعداد کمی جابه‌جا شده‌اند، اما رتبه‌بندی تغییر نکرده است.

مبارزه‌طلبی سه‌ماهه اول ۲۰۲۱ سه‌ماهه دوم ۲۰۲۱ سه‌ماهه سوم ۲۰۲۱ سه‌ماهه چهارم ۲۰۲۱
همگام شدن با تغییرات پلاتفرم وب یا استانداردهای وب. ٪۲۷ ٪۸ ٪۲۷ ‫٪۲۲
همگام شدن با تعداد زیادی از ابزارها یا چارچوب‌های جدید و موجود. ٪۸ ٪۸ ‎٪۲۵ ‫٪۲۱
ایجاد طراحی یا تجربه‌ای که در همه مرورگرها یکسان عمل کند. ٪۸ ٪۲۸ ٪۲۴ ‫٪۲۱
درحال آزمایش در مرورگرهای مختلف. ‫٪۲۳ ٪۲۴ ‫٪۲۰ ‫٪۲۰
درک و اجرای اقدامات امنیتی. ‫٪۲۳ ‎٪۲۵ ‫٪۲۰ ‫٪۱۹

همان‌طور که در پست وبلاگ Paul ذکر شده است، باید به این چالش‌های عمده رسیدگی کنیم. به‌عنوان بخشی از تلاش گسترده‌تر برای انجام این کار، من و همکارم کادیر توپال با بیش‌از ۱۸ توسعه‌دهنده مصاحبه کرده‌ایم. هدف ما بررسی و شروع به درک مسیر رفع مشکلات اصلی توسعه‌دهندگان است.

بحث‌های توسعه‌دهنده

سلب مسئولیت: این اطلاعات آماری براساس تعداد کمی از مکالمه‌ها با توسعه‌دهندگان است. وقتی از «همه» یا «برخی» استفاده می‌شود، منظور توسعه‌دهندگانی است که با آن‌ها مصاحبه شده است، نه کل انجمن. برای تعمیم دادن این اطلاعات آماری به موارد بیشتر، به پژوهش‌های بیشتری نیاز است.

این گفتگوها یادآور خوبی بود که جامعه توسعه‌دهندگان وب چقدر شگفت‌انگیز و متنوع است و می‌خواهم از همه توسعه‌دهندگانی که با ما صحبت کردند تشکر کنم. برخی‌از توسعه‌دهندگان بیش‌از ۲۵ سال تجربه داشتند، درحالی‌که برخی دیگر به‌تازگی در سال ۲۰۲۰ شروع کرده بودند. برخی‌از توسعه‌دهندگان کارشان را با مدرک رسمی علوم رایانه شروع کرده‌اند، درحالی‌که برخی دیگر کارشان را به‌طور مستقل شروع کرده‌اند. برخی‌از توسعه‌دهندگان فعالانه به‌دنبال چیزهای جدید هستند و با خواندن یادداشت‌های انتشار مرورگر خود را به‌روز نگه می‌دارند، درحالی‌که برخی دیگر ازطریق همکاران و دوستان با چیزهای جدید آشنا می‌شوند. برخی فکر می‌کنند پیچیدگی بخشی از کار است و از به‌چالش کشیده شدن لذت می‌برند، درحالی‌که برخی دیگر فقط می‌خواهند کارشان را انجام دهند. وقتی به حل این چالش‌های عمده فکر می‌کنیم، مهم است که این تنوع را در ذهن داشته باشیم!

یکی از چیزهای مشترک بین همه توسعه‌دهندگان این است که همه آن‌ها از یک CMS یا چارچوب برای انجام کار خود استفاده می‌کنند. به Wordpress،‏ React،‏ Bootstrap،‏ Angular، و Tailwind اشاره شد، هیچ‌کدام از توسعه‌دهندگان از پلاتفرم وب وانیلی در تولید استفاده نمی‌کردند. انتخاب چارچوب هنگام شروع پروژه چالش‌برانگیز است و توسعه‌دهندگان اغلب الزامات غیرفنی را درنظر می‌گیرند. برای مثال، آیا استخدام توسعه‌دهنده برای کار با آن چارچوب آسان خواهد بود. اگر چارچوب‌ها و سیستم‌های مدیریت محتوا در راه‌حل گنجانده نشوند، نمی‌توانیم چالش‌های عمده توسعه‌دهندگان را بهبود بخشیم.

وقتی صحبت از پلاتفرم وب می‌شود، اکثر توسعه‌دهندگان پلاتفرم را به‌عنوان چیزی درک می‌کنند که درحال توسعه روی آن هستند. این شامل نه‌تنها تعریف کلاسیک پلاتفرم وب، بلکه سیستم‌های مدیریت محتوا، چارچوب، ابزارها، و شبیه‌سازهای مرورگر نیز می‌شود. در بسیاری‌از موارد، به‌روز ماندن با این تغییرات بزرگ‌ترین چالش است. این موضوع تفسیر ما را از آن سؤال تغییر داد و اکنون می‌دانیم که باید نظرسنجی‌مان را به‌روز کنیم تا آن را به بخش‌های مختلفی تقسیم کنیم که ابهام کمتری داشته باشند.

یکی دیگر از موارد ابهام، تعریف استانداردهای وب است. وقتی از توسعه‌دهندگان درباره نمونه‌های رعایت استانداردها سؤال شد، بسیاری از آن‌ها به دشواری‌های رعایت روال‌های مطلوب اشاره کردند. این مورد دیگری است که باید در نظرسنجی شفاف‌سازی کنیم.

توسعه‌دهندگان هنگام پیاده‌سازی الگوها و موارد استفاده خاص، به‌دنبال روال‌های مطلوب هستند. پست‌های وبلاگ و StackOverflow به‌عنوان منابعی برای روال‌های مطلوب ذکر شده‌اند، اما توسعه‌دهندگان اغلب تردید دارند که آیا اطلاعاتی که می‌خوانند واقعاً روال مطلوب است و آیا با جدیدترین ویژگی‌ها و میاناهای برنامه‌سازی کاربردی به‌روز است یا نه. آن‌ها می‌خواهند منبع رسمی‌تری برای خواندن آن‌ها داشته باشند.

همگام شدن با ویژگی‌ها و میاناهای برنامه‌سازی کاربردی که موارد استفاده جدید را ممکن می‌کنند مشکل کوچک‌تری است. توسعه‌دهندگان بیشتر با ویژگی‌ها، میاناهای برنامه‌سازی کاربردی، و تغییرات پلاتفرم که منجر به تغییر در روال‌های مطلوب می‌شود مشکل دارند.

اکثر توسعه‌دهندگان موافقند که سازگاری یکی از بزرگ‌ترین چالش‌ها است. اوضاع با تلاش‌هایی مثل Compat 2021 و Interop 2022 درحال بهبود است، اما واضح است که توسعه‌دهندگان هنوز آن را به‌عنوان مشکلی حل‌شده نمی‌بینند.

اکثر توسعه‌دهندگان به نحوی از شبیه‌سازهای مرورگر استفاده می‌کنند. بااین‌حال، در بسیاری از موارد، استفاده برای توسعه‌دهندگان شفاف است، زیرا شبیه‌ساز مرورگر می‌تواند به‌طور خودکار توسط ابزاری مانند Babel یا یک چارچوب اضافه شود. برای کسانی که شبیه‌سازهای مرورگر خود را مدیریت می‌کنند، تشخیص اینکه آیا یک شبیه‌ساز مرورگر «خوب» است یا نه می‌تواند مشکل‌ساز باشد. توسعه‌دهندگان به استفاده از تعداد نصب‌ها در NPM و سازنده شبیه‌ساز مرورگر به‌عنوان نشان اشاره کردند. چند توسعه‌دهنده اشاره کردند که برای حذف شبیه‌سازهای مرورگر که به‌دلیل توقف پشتیبانی از IE 11 غیرضروری شده بودند، کارهایی انجام داده‌اند.

چارچوب‌ها مشکلات تکه‌تکه‌سازی را ایجاد می‌کنند. گزارش‌هایی دریافت کردیم که توسعه‌دهندگان در نسخه قدیمی‌تر چارچوب «گیر کرده‌اند» و به‌همین دلیل در ویژگی‌هایی که می‌توانند استفاده کنند محدود شده‌اند، اما انتقال به نسخه جدیدتر همان چارچوب می‌تواند پرهزینه باشد و توجیه آن دشوار است.

نتیجه‌گیری

توسعه وب مدرن دارای بخش‌های متحرک بسیاری است، ازجمله استانداردها، مرورگرها، کتابخانه‌ها، شبیه‌سازهای مرورگر، سیستم‌های مدیریت محتوا، چارچوب‌ها، روال‌های مطلوب، و ابزارها. این تنوع یکی از چیزهای عالی درباره وب است، اما درحال‌حاضر، این به هر توسعه‌دهنده به‌طور جداگانه بستگی دارد که هر قطعه را درک کند و بفهمد که چگونه با یکدیگر سازگار هستند.

می‌خواهم بدانم آیا راهی وجود دارد که توسعه‌دهندگان بتوانند نحوه ارتباط همه چیز با یکدیگر را بهتر درک کنند و هماهنگی بیشتری بین همه بخش‌ها ایجاد شود، بدون اینکه تنوع ازبین برود. این مشکلی بزرگ و پیچیده است و انجام آن به‌صورت یک‌باره دشوار است. اما از کجا باید شروع کرد؟

اگر دیدگاه‌ها و نظراتی دارید که می‌خواهید هم‌رسانی کنید. من هم دوست دارم با شما صحبت کنم. روشی برای رزرو مستقیم مکالمه‌ها راه‌اندازی خواهم کرد، اما دراین‌میان، پیام‌های مستقیم من در Twitter باز است. با من تماس بگیرید تا زمانی را برای گپ زدن پیدا کنیم!