چرا از فریم ورک های جاوا اسکریپت استفاده می شود؟

در این مطلب قصد داریم به بررسی این مساله بپردازیم که اساسا چرا طراحانی که جاوااسکریپت کار می کنند تمایل به استفاده از فریم ورک ها دارند؟

پیش از شروع مطلب باید عرض کنم که فریم ورک ها را با کتابخوانه ها اشتباه نکنید. به عنوان مثال جی کوئری یک کتابخانه هست اما Angular و Backbone و غیره فریم ورک می باشند.

پس در این مطلب ما قرار نیست به بررسی کتابخانه ای مانند جی کوئری بپردازیم که دلیل وجود آن در هر قالبی کاملا واضح بوده و عملا بدون آن ساخت سایت هایی با جذابیت فعلی چیزی بسیار سخت و حتی غیر ممکن است.

چیزی که قصد بررسی آن را در این مطلب داریم فراتر از کتابخانه ای مانند جی کوئری می باشد که یک سری توابع اولیه برای کاربر فراهم کرده و کاربر با استفاده از توابع موجود نیازهای خود را برآورده میسازد.

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

خوب حالا اشکال وجود انبوهی ازکدهای مدیریت نشده کجاست ؟ خوب با کامنت گذاری کدهای مربوط به هر قسمت را پیدا خواهم کرد!

پاسخ : اگر خواستید با باز شدن منو کناری سایت کدهای مربوط به کل صفحه یکبار رفرش بشوند در این صورت چه می کنید ؟ چطور تضمین می کنید که کدهای شما با کدهای شخض دیگری که در آینده ممکن است در سایت بارگزاری بشوند تداخل پیدا نکنند؟ (مخصوصا در سیستم هایی مانند وردپرس) چگونه می توان از کدهای فعلی با کمترین ویرایش در پروژهای دیگر استفاده نمود؟ حجم کتابخانه هایی که باید در صفحه بارگزاری کنید نیز سر به آسمان خواهد زد و اگر بخواهید تک تک آنها را بنویسید بسیار زمان بر خواهد بود.

طراحان به این نتیجه رسیده اند که در وب سایت هایی که قویا از جاوااسکریپت استفاده می شود حتما باید از یک فریم ورک استفاده کرد.

اولین چیزی که اکثر فریم ورکهای جاوااسکریپت ارائه می دهند مدیریت کد می باشد. مساله دیگری که تقریبا در همه فریم ورک ها دیده می شود همسان سازی یا مطلع ساختن بخش های مختلف از ایجاد تغییرات در صفحه می باشد. مساله بعدی که بسیاری از فریم ورکها در خود دارند توابع کمکی برای سرعت دادن به کدنویسی می باشد. به عنوان مثال تابعی که خیلی سریع با دریافت یک متغییر به شما می گوید که آیا این متغییر تعریف شده یانه، یا تابع شبی ساز حلقه foreach و یا تابعی برای بررسی نوع متغییر ، یا تابعی برای بررسی خالی بودن یک متغییر و بسیاری توابع دیگر…

سوای از مسائل گفته شده، اکثر سایت هایی که پیش از ابداع فریم ورک ها وجود داشتند و قویا از جاوااسکریپت استفاده می کردند یا هزینه تولید آنها گران بود یا بسیار کند بودند. و حتی با وجود سیستم قوی باعث کند شدن مرورگر کاربر می شدند و بعضی از انها که خود را بروز نکرده اند هنوز هم می شوند!

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

البته در انگولار ۲ که در زمان نوشتن این مطلب در ابتدای راه خود است، چندان ارزش استفاده ندارد و انگولار ۱ اگر به حجم اهمیت می دهید بهینه تر است. و به نظر می رسد در انگولار ۲ بیشتر به مسائل کیفی و مدیریتی اهمیت داده شده، مثلا کند نکردن مرورگر، دسترسی مدیریت شده ی راحت تر به المان ها در بخش های صفحه و غیره…

 

برای پروژهای کوچک هم فریم ورکهایی مانند backbone وجود دارند که مدیریت بسیاری از مسائل را به کاربر می سپارد و تنها به مدیریت کدها می پردازد و البته با الزامی کردن کتابخانه ی underscore عملا توابع کمکی ای را هم برایتان فراهم می کند! البته حجم هر دوی اینها بر روی هم چیزی در حدود ۳۰ کیلوبایت می باشد که در مقایسه با انگولار ۱ ، ۱۵۰ کیلوبایتی و انگولار ۲ ، ۵۵۰ کیولابایتی! بسیار ناچیز است و البته امکاناتش هم کمتر است.

 

البته باید این را هم مدنظر داشت که اگر از انگولار استفاده کنید، در تئوری نیازی به جی کوئری نخواهید داشت ولی عملا اگر از کتابخانه جانبی بخواهید استفاده کنید یا قرار باشد افزونه ها (در وردپرس) هم کدهایی را اجرا کنند حتما این کتابخوانه نیاز خواهد شد!

 

در نهایت نظر شخصی من این است که در پروژه ی نیمه کوچک از فریم ورک های ساده استفاده کنید و در پروژه های بزرگ از یک فریم ورک قوی، و در پروژه های ساده اصلا فریم ورک مورد نیازتان نیست.

این مساله را هم ذکر کنم که علت بررسی دو فریم ورک backbone و انگولار در این مطلب این بود که اولی در وردپرس وجود دارد و بارگزاری آن توسط ورردپرس می تواند به شما این اطمینان را بدهد که مجددا توسط افزونه ها بارگزاری نخواهد شد و دومی جدیدا بسیار مشهور شده و با تعاریف جدیدی که ارائه داده محبوب ترین فریم ورک موجود نیز می باشد.

موفق باشید.

 

اگر مفید بود به اشتراک بگذارید ! کلوب فیس نما گوگل پلاس

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*