مقالات

آنگولار چیست ؟

مقدمه ای بر AnguralJS

پیش از اینکه بررسی کتابخانه AngularJS را شروع کنیم بهتر است با مفهوم برنامه‌های کاربردی تک‌صفحه‌ای آشنا شویم، چرا که کتابخانه‌هایی مانند AngularJS برای توسعه هر چه ساده‌تر و قوی‌تر این گونه برنامه‌ها متولد شده است. همچنین با توجه به اینکه کتابخانه‌هایی مانند AngularJS به پیاده‌سازی انواع الگوهادر لایه JS (جاوا اسکریپت) کمک می‌کنند، در این مقاله به مفهوم الگوهای طراحی MVC، MVVM و MVP نیز اشاره خواهیم نمود و سپس کتابخانه AngularJS توضیح داده خواهد شد و مزایای استفاده از آن بیان خواهد شد. نکته: در بعضی از مقالات به AngularJS تحت عنوان کتابخانه اشاره شده است و در بعضی دیگر از مقالات، آن را فراتر از کتابخانه دانسته و آن را چارچوب نامیده‌اند و دلیل خود را بستر کاری قدرتمند AngularJS اعلام نموده‌اند که در آن تمام راه‌حل‌های بهینه در کلیه زمینه‌های مورد نیاز در کنار هم جمع‌شده است.

برنامه‌های کاربردی تک‌صفحه‌ای

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

در سال ۲۰۰۳ درباره ایجاد برنامه‌های تک‌صفحه‌ای بحث‌های اولیه مطرح شد، تا اینکه در سال ۲۰۰۵، Steve Yen تعریف مشخصی از برنامه‌های تک صفحه‌ای ارائه نمود. اگر بخواهیم به صورت ساده SPA را توصیف کنیم، باید بگوییم که “برنامه‌ تک‌صفحه‌ای که به اختصار آن را SPA می‌نامند، به برنامه‌های تحت وبی اتلاق می‌شود که تنها دارای یک صفحه هستند و در واقع در این روش تمامی کدهای مورد نیاز سمت سرویس‌گیرنده (کاربر) در یک صفحه نوشته می‌شود. در این برنامه‌ها دیگر نیازی به بارگذاری مجدد برای انجام برخی درخواستها نیست و کدهای مورد نیاز در بارگذاری اولیه و یا در زمان مورد نیاز با استفاده از Ajax بارگذاری می‌شود.”

پس در واقع در یک SPA منابع موجود به صورت پویا بارگذاری می‌شود و در زمان لازم به صفحه اضافه می‌شود. صفحه هیچ‌گاه در زمان پردازش مجدداً بارگذاری نمی‌شود و هیچ‌گاه کنترل به صفحه دیگر منتقل نمی‌شود. در SAP‌ها به‌جای جایگزین شدن صفحه، یک نما در همان صفحه تغییر می‌کند. شکل۱ تفاوت بین روش‌های سنتی و روش SPA را نشان می‌دهد.با روی کار آمدن مفهوم SPA کتابخانه‌هایی ایجاد شدند که قابلیتهای زیادی داشتند و امکان پیاده‌سازی آسان SPA را فراهم می‌نمودند. این کتابخانه‌ها در پیاده‌سازی انواع الگو‌ها در لایه JS نظیر MVP، MVVM و MVC کمک می‌کنند. از مهمترین مزیت این کتابخانه‌ها می‌توان به ساختار بخشیدن آنها به لایه جاوا اسکریپت و در نهایت ساده‌تر شدن توسعه وب‌سایتها اشاره نمود. معروف‌ترین کتابخانه‌هایی که وجود دارند عبارتند از EmberJS ، BackboneJS ،KnockoutJS ، و AngularJS .

معرفی کتابخانه‌ AngularJS

AngularJS یک چارچوب متن‌باز به زبان جاوا اسکریپت می‌باشد. این چارچوب جهت توسعه ساده SPA ها با الگوی طراحی MVC و قابلیت تست آسان آنها ایجاد شد. این چارچوب توسط یکی از محققان Google در سال ۲۰۰۹ بوجود آمد. بعدها این چارچوب تحت مجوز MIT به صورت متن باز ارائه شد و اکنون گوگل آن را پشتیبانی می‌کند و توسط هزاران توسعه‌دهنده در سراسر دنیا، توسعه داده می‌شود. در واقع AngularJS یک چارچوب می‌باشد و در واقع چیزی فراتر از مفهوم کتابخانه را پیاده نموده است.

  1. ویژگی‌های AngularJS

چارچوب انگولار چارچوب جاوا اسکریپتی بسیار قدرتمند می باشد که ویژگی های مفید فراوانی برای برنامه نویسان و طراحان برنامه‌های کاربردی دارد. در این قسمت، مهمترین ویژگی های این فریم ورک جاوا اسکریپتی، بررسی می شود:

  • قالب‌های سمت کاربر : انگولار دارای یک موتور تولید کننده قالب قدرتمند برای تعریف قالب است.
  • پیروی از الگوی طراحی MVC: انگولار، الگوی طراحی MVC را برای توسعه پیشنهاد می‌دهد و امکانات زیادی برای توسعه هر چه راحت‌تر این الگو فراهم نموده است.
  • اتصال داده: امکان تعریف اتصال داده دوطرفه در این چارچوب به راحتی هرچه تمام، امکان پذیر است.
  • تزریق وابستگی : این چارچوب برای دریافت وابستگی‌های تعریف شده، دارای یک سیستم تزریق وابستگی توکار می‌باشد.
  • تعریف سرویس‌های سفارشی: در این چارچوب امکان تعریف سرویس‌های دلخواه به صورت ماژول وجود دارد. این ماژول‌های مجزا را به کمک سیستم تزریق وابستگی توکار انگولار، به راحتی در هر جای برنامه می‌توان تزریق کرد.
  • تعریف دستورالعمل‌های سفارشی: یکی از جذاب‌ترین و قدرتمند‌ترین امکانات این چارچوب، تعریف دستورالعمل‌های سفارشی است. دستورالعمل‌ها، امکان توسعه HTML را فراهم کرده اند. توسعه‌ی HTML اکنون در قالب مولفه‌های وب فراهم شده است، اما هنوز هم خیلی از مرورگر‌های جدید نیز از آن پشتیبانی نمی‌کنند.
  • فرمت کردن اطلاعات با استفاده از فیلترهای سفارشی: با استفاده از فیلترها می‌توانید چگونگی الحاق شدن اطلاعات را برای نمایش به کاربر تعیین کنید، انگولار همراه با فیلترهای متنوعی که عرضه می‌کند که می‌توان به عنوان نمونه به فیلترهای تاریخ، زمان، واحد پول، حروف بزرگ و … اشاره نمود، شما را محدود به فیلترهای تعریف شده در انگولار نمی‌کند و شما آزادید تا به راحتی فیلترهای سفارشی خودتان را نیز تعریف کنید.
  • سیستم مسیردهی: دارا بودن سیستم مسیردهی قدرتمند، توسعه SPAها را بسیار ساده کرده است.
  • سیستم اعتبار سنجی: انگولر دارای سیستم اعتبار سنجی توکار قدرتمند برای بررسی داده‌های ورودی است.
  • سرویس ارتباط با سرور توکار: انگولار دارای سرویس پیش فرض ارتباط با سرور به صورت AJAX است.
  • تست پذیری: انگولار دارای بستری آماده برای تست کردن برنامه‌های نوشته شده است و از Unit Tests و Integrated End-to-End Test هم پشتیبانی می‌کند.
  • امکان توسعه چارچوب به صورت متن باز *
  1. مزیت AngularJS نسبت به سایر چارچوبهای جاوا اسکریپتی

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

  1. نواقص چارچوب AngularJS

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

  1. بیشترین کاربرد چاچوب AngularJS

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

ویژگی‌های AngularJS

چارچوب انگولار چارچوب جاوا اسکریپتی بسیار قدرتمند می باشد که ویژگی های مفید فراوانی برای برنامه نویسان و طراحان برنامه‌های کاربردی دارد. در این قسمت، مهمترین ویژگی های این فریم ورک جاوا اسکریپتی، بررسی می شود :

  • قالب‌های سمت کاربر : انگولار دارای یک موتور تولید کننده قالب قدرتمند برای تعریف قالب است.
  • پیروی از الگوی طراحی MVC: انگولار، الگوی طراحی MVC را برای توسعه پیشنهاد می‌دهد و امکانات زیادی برای توسعه هر چه راحت‌تر این الگو فراهم نموده است.
  • اتصال داده: امکان تعریف اتصال داده دوطرفه در این چارچوب به راحتی هرچه تمام، امکان پذیر است.
  • تزریق وابستگی : این چارچوب برای دریافت وابستگی‌های تعریف شده، دارای یک سیستم تزریق وابستگی توکار می‌باشد.
  • تعریف سرویس‌های سفارشی: در این چارچوب امکان تعریف سرویس‌های دلخواه به صورت ماژول وجود دارد. این ماژول‌های مجزا را به کمک سیستم تزریق وابستگی توکار انگولار، به راحتی در هر جای برنامه می‌توان تزریق کرد.
  • تعریف دستورالعمل‌های سفارشی: یکی از جذاب‌ترین و قدرتمند‌ترین امکانات این چارچوب، تعریف دستورالعمل‌های سفارشی است. دستورالعمل‌ها، امکان توسعه HTML را فراهم کرده اند. توسعه‌ی HTML اکنون در قالب مولفه‌های وب فراهم شده است، اما هنوز هم خیلی از مرورگر‌های جدید نیز از آن پشتیبانی نمی‌کنند.
  • فرمت کردن اطلاعات با استفاده از فیلترهای سفارشی: با استفاده از فیلترها می‌توانید چگونگی الحاق شدن اطلاعات را برای نمایش به کاربر تعیین کنید، انگولار همراه با فیلترهای متنوعی که عرضه می‌کند که می‌توان به عنوان نمونه به فیلترهای تاریخ، زمان، واحد پول، حروف بزرگ و … اشاره نمود، شما را محدود به فیلترهای تعریف شده در انگولار نمی‌کند و شما آزادید تا به راحتی فیلترهای سفارشی خودتان را نیز تعریف کنید.
  • سیستم مسیردهی: دارا بودن سیستم مسیردهی قدرتمند، توسعه SPAها را بسیار ساده کرده است.
  • سیستم اعتبار سنجی: انگولر دارای سیستم اعتبار سنجی توکار قدرتمند برای بررسی داده‌های ورودی است.
  • سرویس ارتباط با سرور توکار: انگولار دارای سرویس پیش فرض ارتباط با سرور به صورت AJAX است.
  • تست پذیری: انگولار دارای بستری آماده برای تست کردن برنامه‌های نوشته شده است و از Unit Tests و Integrated End-to-End Test هم پشتیبانی می‌کند.
  • امکان توسعه چارچوب به صورت متن باز.

مزیت AngularJS نسبت به سایر چارچوبهای جاوا اسکریپتی

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

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

بیشترین کاربرد چاچوب AngularJS

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

نویسنده : مریم پورکمالی انارکی

Related posts

فیبر نوری چیست و چگونه کار می‌کند؟

amir hosaenain

جاوااسکریپت (JavaScript) چیست؟

amir hosaenain

بیوگرافی آلن تورینگ، پدر علم کامپیوتر

amir hosaenain