نگاهی به فریمورک‌های Angular ،Backbone و Ember

نگاهی به فریمورک‌های Angular ،Backbone و Ember

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

بدون شک استفاده از زبان جاوااسکریپت منجر به بهتر شدن Look & Feel سایت یا وب اپلیکیشن ما می‌شود (به طور کلی منظور از این اصطلاح ظاهر سایت و نحوهٔ تعامل کاربران با بخش‌های مختلف آن است). زبان جاوااسکریپت بیش از ۲۰ سال است که به دنیا عرضه شده است اما امروزه کمتر دولوپری را می‌بینیم که سختی کدنویسی با Pure JavaScript را به جان بخرد، بلکه در عوض بیشتر افراد اقدام به استفاده از فریمورک‌ها می‌کنند (هر وقت واژهٔ Pure را قبل از یک زبان برنامه‌نویسی دیدید، منظور کدنویسی با کلاس‌ها و متدهای از پیش نوشته شده در آن زبان بدون استفاده از هرگونه فریمورکی است).

فریمورک‌هایی همچون Angular ،Backbone و Ember کدهای برنامه‌نویس را سازماندهی شده و مرتب جلوه می‌دهند. تمامی این فریمورک‌ها اپن‌سورس بوده لذا این انتظار را می‌توان داشت که توسط دولوپرهای زیادی بیش از پیش توسعه یابند. استفاده از این فریمورک‌ها سرعت توسعهٔ اپلیکیشن را نیز ارتقاء می‌بخشند اما مشکل اصلی از زمانی شروع می‌شود که بخواهیم مابین یکی از این فریمورک‌ها مناسب‌ترین گزینه را انتخاب کنیم.

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

انتخاب یک فریمورک بیشتر به انتخاب نوع یک لباس می‌ماند؛ به طور مثال، برای مجلس عروسی هرگز نمی‌توان یک مایو پوشید یا برای آفتاب گرفتن در سواحل جزیرهٔ کیش، کسی را نمی‌توان یافت که کت و شلوار بپوشد! به همین صورت، هر فریمورکی مناسب کاری خاصی است لذا اول می‌بایست نوع کار وب اپلیکیشن یا سایتی که قرار است راه بیندازیم را مشخص ساخته، سپس اقدام به انتخاب نوع فریمورک مد نظر خود نماییم.

فریمورک Angular JS
Angular.js از میان سه فریمورکی که در این مقاله قصد داریم بررسی کنیم، قدیمی‌ترین آنها است و عرضهٔ آن به سال ۲۰۰۹ باز می‌گردد؛ لذا جامعهٔ توسعه‌دهندگان آن نیز نسبت به رقبایش بیشتر است (البته توسعهٔ‌ این فریمورک توسط غول نرم‌افزاری دنیا -گوگل- هم بی‌تأثیر نیست). از جمله شرکت‌های حامی این فریمورک می‌توان به گوگل، نایک، جنرال موتوز و سایت خبری گاردین اشاره کرد. یکی از دلایلی که شرکت‌های مطرحی همچون موارد فوق‌الذکر به این فریمورک روی آورده‌اند این است که این فریمورک نه تنها بسیار انعطاف‌پذیر است بلکه تغییرات مد نظر را خیلی سریع می‌توان در اپلیکیشن‌های نوشته شده با این فریمورک اعمال کرد.

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

فریمورک Backbone.js
Backbone.js در سال ۲۰۱۰ به دنیا عرضه شد و جامعهٔ دولوپرهای این فریمورک هم دست کمی از آنگولار ندارد. وب اپلیکیشن‌های معروفی همچون توییتر، فوراسکور، لینکداین موبایل، ساوندکلود، پیچ‌فورک و پاندورا از این فریمورک استفاده می‌کنند.

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

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

فریمورک Ember.js
Ember.js جدیدترین فریمورک در میان این سه گزینه است اما در همین عمر کوتاه (در سال ۲۰۱۱ به بازار عرضه شده) خود توانسته سهم بازار نسبتاً قابل‌توجهی را به خود اختصاص دهد. اپلیکیشن‌های LivingSocial ،Groupon ،Zendesk ،Discourse و Square برخی از نمونه‌های معروفی‌اند که از این فریمورک استفاده کرده‌اند.

به گفتهٔ توسعه‌دهندگان اصلی این فریمورک، زمانی که شما سایتی را مشاهده می‌کنید، به راحتی می‌توانید تشخیص دهید که آیا از امبر استفاده کرده است یا خیر زیرا سایت‌هایی که از فریمروک Ember استفاده می‌کنند، خیلی سریع لود می‌شوند و دلیل این مسأله هم آن است که تمامی فرایند رندر شدن در مرورگر کاربر اتفاق می‌افتد.

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

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

حال نوبت به نظرات شما می‌رسد. آیا شما تجربهٔ کار با این سه فریمورک یا سایر فریمورک‌های جاوااسکریپتی را داشته‌اید یا خیر؟ به نظر شما مطالب ارائه شده در این مقاله چقدر در دنیای واقعی عملی هستند؟ نظرات، دیدگاه‌ها و تجربیات خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.