آشنایی با Angular

پس از ظهور فن آوری AJAX شاهد پیدایش Web Application های بسیاری بودیم. بسیاری از برنامه نویسان اقدام به تولید وب سایتها و وب اپلیکیشنهای گوناگون با حال و هوای نرم افزارهای تحت ویندوز و یا دیگر سیستم های عامل نمودند. منظورم از حال و هوا refresh نشدن صفحات و یا عدم استفاده از post back ها میباشد که برای کاربران وب تجربه جدیدی بود و دیگر با هر کلیک نیاز نبود زمان زیادی برای لود شدن مجدد محتوا در بروزر صرف کنند.

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

این روش بسیار ساده و کارآمد میباشد اما برای صفحات ساده و یا تنها بخشی از صفحات. هر چه پیچیدگی صفحات وب و منطق نرم افزاری آنها پیچیده تر میشد پیاده سازی این صفحات با استفاده از AJAX به مراتب زمانبرتر و پیچیده تر از پیاده سازی آنها به صورت سنتی میشد. بسیاری از پروژه های Single Page Application یا SPA یا برنامه های تک صفحه ای ( که در آنها عملاً تنها یک صفحه توسط کلاینت لود میشود و محتوای آن یک صفحه به مرور با تعاملات گوناگون کاربر به روز رسانی میشد) به علت پیچیدگی کد سمت کلاینت و قابلیت تغییر پذیری و آپگرید پایین با شکست مواجه شدند. تمامی این دلایل باعث شد که برنامه نویسان به دنبال یک معماری جدید در سمت کلاینت باشند.

فریم ورکهای گوناگونی برای راحت ساختن برنامه نویسان و کاستن از پیچیدگیهای کد سمت کلاینت ایجاد شدند هدف اصلی این فریم ورکها پیاده سازی معماری های آشنا و محبوب سمت سرور مانند MVC در سمت کلاینت بود. از جمله این فریم ورکها میتوان به Angular.js ، Backbone.js و Ember.js اشاره نمود. که هدف از این سری مقالات آشنا نمودن شما دوستان گرامی با Angular.js و نحوه پیاده سازی آن در پروژه های وب به صورت جزئی و یا کلی در پروژه های SPA میباشد.

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