نقد و بررسی فریم ورک های Angular، Backbone و Ember

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

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

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

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

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

فریم ورک Backbone.js
بکبون جی اس در سال ۲۰۱۰ به دنیا عرضه شد و جامعه دولوپرهای این فریم ورک هم دست کمی از آنگولار ندارد. وب اپلیکیشن های معروفی همچون توییتر، فوراسکور، لینکدین موبایل، سوندکلود، پیچ فورک و پاندورا از این فریم ورک استفاده می کنند. یکی از نکات قابل توجه در مورد فریم ورک بکبون جی اس حجم دانلود این فریم ورک است که نسبت به سایر رقبا بسیار اندک است. به طور مثال فریم ورک آنگولار 36K است، امبر 69K است اما بکبون جی است صرفاً ۶.۴K می باشد. این حجم پایین بکبون برگ برنده آن است و دلیل این مسأله هم آن است که بکبون به جای وابسته بودن به چندین لایبرری جاوا اسکریپت، صرفاً به یک لایبرری وابسته است و همین سبک بودن باعث شده تا دولوپرهایی که می خواهند اپلیکیشن های سریع و واکنش گرا طراحی کنند به این فریم ورک روی آورند.

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

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

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

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

0


بهزاد مرادی

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






  • محسن در تاریخ: 1395/02/20

    جهت مشاوره در یک پروژه Cloud شرکت اوپایی با ما تماس بگیرید. Jobs@Xepos.co.uk

از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)