آیا واقعا همیشه به Web Frameworks نیاز است؟

شکل ۱: چارچوب‌های وب
شکل ۱: چارچوب‌های وب


منتشر‌شده در: thenewstack.io به تاریخ ۱۵ فوریه ۲۰۲۱
لینک منبع: Web Frameworks: Why You Don’t Always Need Them

توسعه وب در سال ۲۰۲۱ تحت سلطه چارچوب‌های JavaScript مانند Next.js و angular، چارچوب‌های CSS مانند Tailwind و Materialize، چارچوب‌های JAMstack مانند Next.js و Gatsby و بسیاری دیگر است. اما یک شرکت جدید، Yax.com، از رویکرد «بدون چارچوب» استانداردهای وب برای توسعه وب دفاع می‌کند. با بررسی دقیق‌تر، یک روش «بازگشت به اصول اولیه» دوباره‌سازی برای ساخت یک وب‌سایت یا برنامه ارائه می‌دهد. سوال این است: آیا در مقیاس عملی است؟

هشدار : نه، نمی‌تواند باشد! با این وجود، دلایل زیادی برای عدم استفاده از چارچوب وب وجود دارد.

سایت Yax.com سال گذشته توسط دانیل کیهو تاسیس شد که سابقه طولانی در توسعه وب -حتی از جمله یک ایمیل با تیم برنرز- لی در سال ۱۹۹۱ داشته است. او پس از شروع پروژه منبع باز RailsApps و نوشتن کتاب «روبی در Rails» در حدود یک دهه پیش، در انجمن روبی در Rails یک شخصیت مورد احترام است. اما در جایی در طول مسیر، کیهو از رویکرد چارچوب‌ها در توسعه وب خسته شد.

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

چارچوب‌های برنامه وب از دهه ۱۹۹۰ محبوب شده‌اند، زمانی که لایک‌های Adobe ColdFusion و صفحات سرور فعال مایکروسافت (ASP) راه‌اندازی شدند. این روند تا دهه ۲۰۰۰، با چارچوب‌هایی مانند روبی در Rails (که من در ستون هفته گذشته درباره آن صحبت کردم) و جانگو ادامه یافت. سپس در دهه ۲۰۱۰، چارچوب‌هایJavaScript به طور خاص تکثیر شدند. در بهترین حالت، چارچوب‌ها ایجاد برنامه‌های کاربردی وب پیچیده را برای توسعه‌دهندگان آسان می‌کنند.پس مشکل (کیهو) با آن‌ها چیست؟

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

ممکن است به مطالعه مقاله ساخت نسخه آفلاین آفیس ۲۰۲۱ توسط مایکروسافت علاقه‌مند باشید.

تکنولوژی‌های Stackless

سه فن‌آوری کلیدی زیر بنای رویکرد کیهو وجود دارد:

ماژول‌های ES6: ES6 JavaScript می‌تواند ماژول‌های ورودی را پشتیبانی کند که توسط مرورگرها پشتیبانی می‌شوند.

ماژول‌های CDN ها: اکنون ماژول‌های JavaScript را می‌توان از شبکه‌های تحویل محتوای شخص ثالث CDN ها دانلود کرد.

عناصر HTML سفارشی: توسعه‌دهندگان اکنون می‌توانند تگ‌هایHTML سفارشی را از طریق اجزای وب ایجاد کنند.

شکل ۲: تکنولوژی Stackless
شکل ۲: تکنولوژی Stackless


توانایی تعدیل کد و نشانه‌گذاری نقطه عطف برای کیهو بود. ماژول‌های JavaScript ابتدا توسطECMA، مجموعه استانداردهایJavaScript، در سال ۲۰۱۵ با ECMAScript ۶(ES6) معرفی شدند.

اما تا سپتامبر ۲۰۱۷ طول کشید تا به درستی در مرورگر پیشرو در بازار گوگل، کروم، پشتیبانی شود. تصویب HTML مدولار کمی بیشتر طول کشید، اما کیهو فکر می‌کند اجزای وب - که در طول سال ۲۰۱۸ به طور کامل در کروم و فایرفاکس پشتیبانی شدند - در نهایت این امر را ممکن ساختند.

او در سایت خود نوشت: ما زمانی به چارچوب‌های توسعه برنامه‌های کاربردی وب نیاز داشتیم زیرا هیچ گزینه‌ای برای نوشتن کد مدولار یا دسترسی به پایگاه‌های داده در HTML قدیمی و JavaScript وجود نداشت. اکنون عناصر سفارشی نوشتن HTML مدولار را ممکن می‌سازند.

اجزای وب اغلب به عنوان یک استاندارد وب جایگزین برای کتابخانه‌های محبوب JavaScript و چارچوب‌هایی مانند Reaction، angular و Vue قرار می‌گیرند. ایده این است که مولفه‌های وب می‌توانند در تمام پلتفرم‌ها و چارچوب‌ها مجددا مورد استفاده قرار گیرند و بنابراین اثبات آینده هستند، در حالی که (برای مثال) مولفه‌های واکنش تنها می‌توانند در محیط‌های واکنش مجدد مورد استفاده مجدد قرار گیرند.

هنوز هم برای مولفه‌های وب زود است، اما پس از اینکه مرورگر edge مایکروسافت در ژانویه ۲۰۲۰ پشتیبانی خود را به آن اضافه کرد، نیروی حرکت افزایش یافته است. الکس راسل از گوگل به تازگی گفته است که « ۱۲ درصد از صفحات بارگذاری شده در کروم [ در حال ] با استفاده از اجزای وب هستند.» اگر دنیل کیهو راه خود را پیدا کند، توسعه‌دهندگان بدون ترک در طول زمان به این تعداد اضافه خواهند کرد.

معایب رویکرد بدون چارچوب

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

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

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

مسائل دیگری نیز وجود دارند، از جمله اینکه رویکرد بدون چارچوب هنوز هم بسیار جدید است و بنابراین فقدان برنامه‌های کاربردی و سایت‌های نمونه برای یادگیری از آن‌ها وجود دارد.

در اینجا باید به این نکته اشاره کنم کهYax.com خود را به عنوان رقیب ورسل وGatsby، دو شرکتی که به شدت بر چارچوب‌هایی تکیه دارند و کاربران‌شان تمایل به توسعه‌دهندگان پیشرو دارند، قرار نداده است. Yax.com در عوض با ارائه مثال‌هایی از پروژه‌های کوچک که می‌توانند با یک رویکرد بدون مانع ساخته شوند، «طراحان، سازندگان، و مبتدیان وب» را هدف قرار می‌دهد.

سخن پایانی

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

برای یک چیز، این مساله نشان می‌دهد که ما در طول چند سال گذشته تا چه حد در تکنولوژی مرورگر و استانداردهای وب پیش رفته‌ایم. با ظهور جاوا اسکریپت و (اخیرا) اجزای وب در مرورگر های پیشرو، شما می‌توانید برنامه‌های پیچیده شگفت‌انگیزی بسازید بدون این که لزوما به یک چارچوب نیاز داشته باشید. همانطور که کیهو می‌گوید:

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

حداقل رویکرد stackless راهی خوب برای آشنایی دوباره با پلتفرم وب مدرن است.

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