ویژگیهای انگولار
- انگولار یک فریمورک ساختاری بر مبنای الگوی MVC است.
- انگولار فریمورکی برای توسعه اپلیکیشنهای تکصفحهای (SPA) است.
- این کتابخانه از امکان قالبسازی سمت کلاینت پشتیبانی میکند.
- انگولار امکان اجرای تست unit را فراهم ساخته و از این رو کد انگولار میتواند پیش از توزیع مورد تست قرار گیرد.
مزیتهای انگولار
چنان که اشاره کردیم انگولار یک فریمورک متن-باز است که به وسیله گوگل نگهداری میشود. این کتابخانه قادر به خوانش بسیار سریع صفحه HTML است که موجب میشود بتوانیم خصوصیتهای سفارشی تگ اضافی را در صفحه جاسازی کنیم. این خصوصیتها به صورت دایرکتیوهایی تفسیر میشوند که به فریمورک انگولار دستور میدهند تا بخشهای ورودی و خروجی صفحه را به یک مدل اتصال دهد که به صورت متغیرهای استاندارد جاوا اسکریپت بازنمایی میشود. مقادیر این متغیرهای جاوا اسکریپت را میتوان به صورت دستی درون کد تعیین کرد یا از منابع استاتیک یا دینامیک JSON شامل دادههای سمت سرور از قبیل REST API یا غیره به دست آورد.
مزایای عمده استفاده از انگولار در وباپلیکیشنها به شرح زیر است:
- انگولار به جای افزودن کد HTML داخلی خاص خود، به صورت مستقیم DOM صفحه را دستکاری میکند که به مراتب سریعتر است.
- «اتصال داده» (Data Binding) در زمان هر تغییر در کنترل یا مقدار رخ نمیدهد. بدین ترتیب چیزی به نام «شنونده تغییر» (Change Listener) وجود ندارد، بلکه در نقاط خاصی از اجرای جاوا اسکریپت این رصد تغییرات انجام مییابند. این موضوع موجب بهبود چشمگیری در عملکرد میشود، چون یک بهروزرسانی منفرد دستهای Model/View جایگزین صدها رویداد تغییر داده آبشاری میشود.
- هیچ نیازی به استفاده از تابعهای observable وجود ندارد. انگولار DOM صفحه را تحلیل میکند و اتصالها را بر مبنای خصوصیتهای عنصر خاص انگولار میسازد. این امر نیازمند کدنویسی کمتری است یعنی کد منسجمتر است، درک آن آسانتر است و خطاهای کمتری دارد.
- امکان بسط قابلیتهایی از قبیل تزریق وابستگی، مسیریابی، انیمیشن، کپسولهسازی نما و موارد دیگر وجود دارد.
- از سوی IDE-های IntelliJ IDEA و Visual Studio.NET پشتیبانی میشود.
- از سوی گوگل و جامعه توسعهدهندگان عالی آن پشتیبانی میشود.
- انگولار راهحلی عالی برای توسعه سریع در سمت فرانت است. این کتابخانه به هیچ پلاگین یا فریمورک دیگری نیاز ندارد.
- انگولار آمادگی تست unit را دارد و این یکی از بهترین مزیتهای این فریمورک است.
چرا انگولار را فریمورک مینامیم؟
پیش از آن که به بررسی مفاهیم انگولار بپردازیم، باید با ماهیت خود آن آشنا شویم. ما چرا به انگولار فریمورک میگوییم؟ بر اساس تعریف دیکشنری، فریمورک یک ساختار حمایتکننده است. این تعریف یکجملهای به خوبی انگولار را توصیف میکند. اما با این وجود، انگولار اکوسیستم بزرگ و مفیدی عرضه میکند که از طریق میتوانیم به ابزارهای مختلفی دست پیدا کرده و به این ترتیب مسائل خود را حل کنیم. همچنین از این ابزارها میتوانیم برای طراحی و سازماندهی اپلیکیشن جدید استفاده کنیم.
تاریخچه انگولار
نخستین نسخه انگولار از سوی شخصی به نام «میشکو هیوِری» (Miško Hevery) که یک توسعهدهنده در گوگل بود، در سالهای ۲۰۰۸ و ۲۰۰۹ ایجاد شد. او یک فریمورک برای تسهیل ساخت وباپلیکیشنها طراحی کرده بود. این فریمورک نه برای توسعهدهندگان وب، بلکه برای استفاده طراحان وب ارائه شده بود که اطلاعات فنی کمی از دانش برنامهنویسی داشتند. به این ترتیب اگر یک وبسرور استاتیک داشتید، میتوانستید یک وباپلیکیشن ساده بسازید. «آدام آبرونز» (Adam abrons) یکی از همکاران میشکو پیشنهاد کرد نام این پروژه انگولار یعنی زاویهدار باشد، زیرا HTML شامل «براکتهای زاویهدار» (Angular) است.
در این زمان مدیر میشکو در شرکت گوگل به نام «براد گرین» (Brad Green) از وی خواست که روی یکی از ابزارهای داخلی گوگل به نام «Google Feedback» کار کند. گوگل یک فریمورک به نام GWT داشت که با جاوا نوشته شده بود و به منظور توسعه ابزارهای داخلی این شرکت مورد استفاده قرار میگرفت. دو توسعهدهنده دیگر به همراه میشکو ۱۷۰۰۰ خط کد را در طی ۶ ماه نوشتند. دلیل این زمان طولانی آن بود که تست کردن این کد کار دشواری بود. برای افزودن یک برچسب در HTML باید کد آن در جاوا نوشته و کامپایل شده به جاوا اسکریپت HTML انتقال مییافت تا در مرورگر وب نمایش یابد. میشکو ادعا کرد که میتواند کل این پروژه را در طی ۲ هفته با استفاده از ابزاری که خود به نام انگولار توسعه داده است، بنویسد.
با این که وی نتوانست ادعای خود را اجرا کند و این کار را در طی ۳ هفته انجام داد، اما حجم کد به ۱۵۰۰ خط کاهش یافت. با این حال این پروژه از سوی مدیران ارشد گوگل حمایت نشد و لذا به صورت یک کتابخانه متن-باز منتشر شد و کار از سوی توسعهدهندگان خارج از گوگل ادامه یافت.