راهنمای مطالعه
انگولار ۲، تسلط گستردهای در بین فریمورکهای متنباز پیدا کرده و توسط تعداد زیادی از توسعهدهندگان و صاحبان کسبوکار، به منظور ارائه راهحلهای کاربردی استفاده میشود.
انگولار ۲ یک فریمورک پیشرفته سمت سرور با معماری MVM است و برای توسعه برنامههای تحت وب و موبایل کاربرد زیادی دارد. انگولار ۲ در کنفرانس ng-Europe در سپتامبر ۲۰۱۴ رونمایی شد. سپس نسخه بتای آن در دسامبر ۲۰۱۵ در اختیار برنامه نویسان قرار گرفت و در نهایت سال ۲۰۱۶ نسخه اصلی و نهایی انگولار ۲ رونمایی گردید.
ویژگیهای مهم انگولار ۲
توسعهدهندگان برای توسعه برنامههای انگولار ۲، از تایپ اسکریپت استفاده میکنند. این زبان پشتیبانی خوبی از استاندارد اکما اسکریپت ۶ به عمل میآورد. تایپ اسکریپت، یک زبان کامپایل شده است که از نوع داده پشتیبانی میکند. تایپ اسکریپت به توسعهدهندگان اجازه میدهد از کلاس، اینترفیس و ماژولها همانند زبان جاوا یا سی شارپ استفاده کنند که این کار کارایی برنامههای تحت وب و موبایلی که با این زبان نوشته میشود را بالا برده و همچنین باعث کاهش خطاهای زمان اجرا میشود.
در زیر ۸ ویژگی اصلی معماری انگولار ۲ را ملاحظه میفرمایید.
۱-ماژول:
ماژولها شباهت زیادی به کلاسها دارند. در حقیقت یک ماژول یک قطعه کد است که وظیفه خاصی را انجام میدهد. انگولار ۲ از ویژگی ماژولار برای توسعه برنامهها استفاده میکنند؛ یعنی تعداد زیادی ماژول را با هم ترکیب کرده و یک برنامه کامل را ایجاد میکند.
۲– کامپوننتها:
کامپوننت نمای ظاهری و منطق یک صفحه وب است و همچنین با انجام هر کلیک، یک کامپوننت خاص اجرا میشود.
بنابراین کامپوننت بخش هستهای کدهای انگولار محسوب شده و به کلاس کنترلر تعلق دارند.
برای ثبت یک کامپوننت از @component استفاده میشود. به ازای هر عنصر DOM تنها از یک کامپوننت استفاده میشود. همچنین برای اتصال یک فایل CSS به کامپوننت میتوان از روشهای استایلهای درون خطی (inline)، استفاده از آدرس فایل CSS در کامپوننت و استایل دهی درون خطی در قالب، استفاده کرد.
۳- قالب:
قالبها بخشهای اصلی انگولار هستند و وظیفه آنها تراز بندی نحوه نمایش کامپوننتها است. برای نمایش مقدار متغیر name از عبارت زیر استفاده کنید:
۴- متا دیتا:
متادیتاها عمدتاً برای توسعه قابلیتهای یک کلاس استفاده میشود. در تایپ اسکریپت برای افزودن اطلاعات اضافی به کلاسها (decorate کردن کلاس) از متادیتاها استفاده میشود. برای مثال برای تعریف هر کامپوننت در برنامههای انگولار از متادیتای کلاس استفاده میشود (برای مثال @component)
۵- مقیدسازی داده:
یکی از قدرتمندترین ویژگی انگولار، مقیدسازی دادهها است. مقیدسازی داده در حقیقت یک پل بین مدل و View است و باعث همگام شدن View و مدل میشود.
انگولار ۲ از چهار نوع مقیدسازی پشتیبانی میکند که عبارتاند از: مقیدسازی پروپرتی، مقیدسازی رویداد، مقیدسازی الحاقی و دو طرفه.
۶– دایرکتیو:
Directive ها خصیصههای سفارشی شده Html هستند که باعث توسعه قابلیتهای Html میشود.
برای ایجاد یک Directive از عبارت @Directive که به متادیتاهای متصل شده به یک کلاس اعمال شده استفاده میکنیم.
سه نوع Directive داریم: Decorator، کامپوننت (Component) و قالب (Template).
۷- سرویس:
هنگامی که یک قابلیت خاص به طور مکرر در برنامه استفاده میشود، از سرویسها استفاده میکنیم. در حقیقت سرویسها، دادهها و رفتارهایی را در برنامه به اشتراک میگذارند.
سرویس هیچ کلاس پایهای ندارد.
معمولاً از سرویسها برای پیاده کردن سیستم لاگین، سرویسهای دادهای، سرویس پیامرسانی و… استفاده میشود.
۸– تزریق وابستگی:
برای افزودن یک قابلیت به کامپوننتها در زمان اجرا، از تزریق وابستگی استفاده میشود. به دلیل اینکه آبجکتها بهعنوان وابستگی پاس داده میشوند، باعث میشود وابستگیها قابلیت پیکربندی پیدا کنند. با تزریق وابستگی قابلیت نگهداری کامپوننتها بالا رفته و همچنین باعث افزودن قابلیت استفاده مجدد و تست پذیری به کامپوننتها میشود.
انگولار ۲ یک فریمورک متنباز است که برای قسمت front end یک برنامه استفاده میشود. انگولار ۲ توسط توسعهدهندگان گوگل و به زبان تایپ اسکریپت نوشته شده است.
ویژگیهای کلیدی انگولار ۲
- کامپوننتها: تمرکز نسخههای قبلی انگولار به کنترلرها بود، اما در این نسخه تمرکز انگولار به کامپوننتها بیش از کنترلرها است.
کامپوننتها به ماژولار کردن یک برنامه کمک زیادی میکنند. کامپوننتها همچنین به افزایش قابلیت نگهداری برنامهها کمک زیادی میکنند.
- تایپ اسکریپت: نسخه جدید انگولار مبتنی بر تایپ اسکریپت است. این زبان بهعنوان superset(مجموعه بزرگتر) جاوااسکریپت شناخته میشود و توسط شرکت مایکروسافت نگهداری میشود.
- سرویسها: سرویسها یک سری کد هستند که میتوانند بین کامپونتهای برنامه به اشتراک گذاشته شوند. برای مثال، اگر شما یک کامپوننت داده دارید که اقدام به گرفتن دادهها از پایگاه داده کند، میتوانید آن را توسط یک سرویس اشتراکگذاری شده بین چندین برنامه، استفاده کنید.
به علاوه، انگولار ۲ قابلیت مدیریت رویداد بهتر، قالببندی قدرتمند و پشتیبانی بهتری از دستگاههای موبایل ارائه میدهد.
AngularJs (همچنین با نامهای Angular یا Angular.js هم شناخته میشود)، یک فریمورک متنباز جاوااسکریپت است که برای بخش front end یک برنامه تحت وب استفاده میشود. این فریمورک توسط گوگل طراحی و نگهداری میشود و توسط یک اجتماعی از افراد و شرکتها به منظور حل چالشهایی که در توسعه یک برنامه تک صفحهای وجود دارد استفاده میشود. کامپوننتهای جاوااسکریپت مکمل phonegap هستند. phonegap یک فریمورک برای توسعه برنامههای مستقل از پلتفرم موبایل است. هدف انگولار راحت کردن توسعه و تست برنامههای سمت کلاینتی است که با معماری model-view-controller(MVC) و model-view-viewModel(MVVM) نوشتهشدهاند.
روش کار فریمورک AngularJs به این صورت است که در ابتدا خصیصههای سفارشی که درون تگهای html قرار داده شدهاند را خوانده و آنها را به Directive ها برای مقید کردن بخشهای ورودی و خروجی یک صفحه به یک مدل که توسط متغیرهای استاندارد جاوااسکریپت نمایش داده میشود، تبدیل میکند. مقادیر این متغیرهای جاوااسکریپت میتواند در داخل کد بهصورت دستی تنظیم شود یا از یک منبع Json استاتیک یا دینامیک بازیابی شود. طبق گفته سرویس تحلیلی جاوااسکریپت Libscore، AngularJs در وبسایتهای بزرگی نظیر wolfram alpha، NBC، walgreen، intel، sprint، ABC News و حدود ۸۴۰۰ سایت از یک میلیون سایتی که در جولای ۲۰۱۵ بررسی شد، استفاده میشود. AngularJs بخش Front end یک MEAN Stack است.
M در MEAN از اول نام پایگاه داده MangoDB گرفته شده، همچنین E از فریمورک سرور برنامههای تحت وب Express.js، A از نام Angular و N از محیط زمان اجرای Node.js تشکیل شده است.
Angular (که معمولاً با نامهای Angular2+ و یا Angular2 هم شناخته میشود) یک پلتفرم متنباز و مبتنی بر زبان تایپ اسکریپت است که برای توسعه بخش Front end یک برنامه تحت وب استفاده میشود. این فریمورک توسط تیم انگولار در گوگل پشتیبانی میشود.
انگولار ۲ کاملاً با نسخه قبلی خود یعنی AngularJs تفاوت دارد. AngularJs یک فریمورک برای بخش Front end است که توسط زبان جاوااسکریپت نوشته شده است، در حالی که Angular2 به زبان تایپ اسکریپت نوشته شده است. شش سال قبل گوگل AngularJs که یک فریمورک متنباز و مبتنی بر زبان جاوااسکریپت بود را منتشر کرد. این فریمورک برای توسعه بخش front end استفاده میشود. در آن زمان توسعهدهندگان شروع به استفاده از این فریمورک برای ساخت برنامههای تحت وب و موبایل کردند. انگولار یک شعار دارد و آن «Html بهبود یافته برای برنامههای وب» است.
چون انگولار توسط تگ <script> به صفحه Html اضافه شده و توسط Directive ها خصیصههای Html را گسترش میدهد، سپس از expression ها برای مقید کردن دادهها به یک صفحه Html استفاده میکند. در سپتامبر ۲۰۱۴ نسخه ۲ انگولار در کنفرانس ngEurope معرفی شد و گوگل توسط تغییرات بحثبرانگیزی که در این نسخه ایجاد کرده بود، همه توسعهدهندگان را غافلگیر کرد و در انتهای آپریل این فریمورک جاوااسکریپت از وضعیت آلفا به پیشنمایش توسعهدهنده (Developer Preview) تغییر کرد و سپس در ماه دسامبر دوباره به حالت بتا برگشت. درنهایت آخرین نسخه آن در ۱۴ سپتامبر منتشر شد. Angular بهطور کامل بازنویسی شده است و همچنین وعده یک انقلاب در توسعه برنامههای تجاری را داده است.
نتیجهگیری
انگولار ۲، هم از نظر کدنویسی و هم از نظر کارایی و پشتیبانی از موبایل بهبودهای زیادی پیدا کرده است.
انگولار فریمورکی برای ساخت برنامههای سمت کلاینت است و از زبان جاوااسکریپت و یا تایپ اسکریپت استفاده میکند.
انگولار از قالبهای اعلانی، تزریق وابستگی و بهترین شیوههای یکپارچه شده برای حل چالشهای توسعه استفاده میکند.
انگولار به توسعهدهندگان این اختیار را میدهد تا برنامهشان را تحت دسکتاپ، موبایل و یا تحت وب ایجاد کنند.
انگولار ۲ نسخه دیگری از AngularJS است که تغییرات زیادی پیدا کرده است. در حقیقت انگولار ۲ بهطور کامل بازنویسی شده است. به این دلیل، دانستن AngularJs کمکی به یادگیری انگولار ۲ نمیکند. زبان پیشنهادی در انگولار ۲ تایپ اسکریپت است و نه جاوااسکریپت. توسعه برنامهها در انگولار ۲ کاملاً با نسخه قبلی آن متفاوت است. در انگولار ۲ با مفاهیم جدیدی از قبیل کامپوننت، decorator ها و شکل جدیدی از تزریق وابستگی سروکار دارید.