معرفی Angular

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

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

چرا ما به یک Framework نیاز داریم؟

اگر شما دقیقا نمی دانید که یک framework جاوااسکریپت (یا سمت سرور) چیست، درواقع یک تکنولوژی است که به ما ابزار های مناسب برای ساخت یک وب اپلیکیشن ارائه می دهد.

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

درواقع مدت زیادی نیست که Framework های جاوااسکریپت بایکدیگر ادغام شده اند من زمانی را به یاد می آورم که وب سایت ها با ساختار های ضعیف کد جاوااسکریپت ساخته می شدند(در بسیاری از موارد با jQuery) اما Ui های سمت کلاینت رفته رفته پیچیده تر شدند وبسایت های مدرن به شدت به جاوااسکریپت وابسته هستند بنابراین نیاز است که کد های نوشته شده بطور صحیح مدیریت (و تست) شوند بنابراین Framework های سمت کلاینت معروف شدند و امروزه تعداد زیادی از آن ها وجود دارد.

Angular چیست؟

در بین Framework های جاوااسکریپت، Angular "فرزند طلایی" است و شرکت گوگل در سال 2012 آن را معرفی کرد که با مفهوم Model-View-Controller ساخته شده بود بنابراین نویسندگان این Framework معمولا آن را “Model-View-*” و یا حتی "هرچیزی-Model-View" می نامیدند.

این Framework بطور خالص با جاوااسکریپت نوشته شده است و به منظور جداکردن منطق اپلیکیشن از عملیات DOM ساخته شده بود و قصد به روزرسانی صفحات پویا را داشت و ویژگی های بسیار قدرتمندی را معرفی کرد که به توسعه دهندگان امکان ساخت اپلیکیشن های تک صفحه ای را بصورت ساده می داد و بطور خاص یک مفهوم جالب از data binding را معرفی کرد که به معنی به روزرسانی خودکار View با تغییر Model (داده ها) و بالعکس بود. علاوه بر این ایده Directive ها نیز مطرح شد که به شما امکان ابداع تگ های HTML خودتان را می داد.

یک موضوع نسبتا مهم دیگر تزریق وابستگی بود که به کامپوننت های اپلیکیشن امکان ساخته شدن با دیکدیگر بطوری که امکان تست کردن و استفاده مجدد را داشته باشند می دهد. Angular ویژگی های بسیار بیشتری نیز دارد که در این مقاله به آن ها نمی پردازیم.

AngularJS به سرعت محبوب شد و بازخورد های فراوانی را دریافت کرد بنابراین توسعه دهندگان آن تصمیم گرفتند یک نسخه ی دیگر به نام Angular2 را منتشر کنند.

اولین نسخه ی پایدار Angular2 در سال 2016 منتشر شد. یکی از ویژگی های اصلی Angular2 امکان توسعه پلتفرم های چندگانه یعنی موبایل،وب و دسکتاپ بود و در اواخر سال 2016 نیز Angular4 منتشر شد ممکن است بپرسید پس Angular3 چه شد؟ جالب است که Angular3 اصلا منتشر نشد. و در نوامبر سال 2017 نیز Angular5 منتشر شد که با نسخه های قبلی سازگار است و Angular6 هم به زودی معرفی خواهد شد و ویژگی ها و دستاورد های جالبی را دراختیار ما قرار خواهد داد.

مزایای Angular

خب چرا Angular؟ زیرا در پلت فرم های مختلفی (وب،موبایل و دسکتاپ) پشتیبانی میشود، قدرتمند و مدرن است و محیط خوبی دارد.قانع نشدید؟ اجازه بدهید دقیق تر توضیح بدهم.

Angular نه تنها ابزار ها بلکه design pattern ها را بصورتی قابل دسترس در اختیار شما قرار می دهد. زمانی که شما یک اپلیکیشن Angular را بطور صحیح بسازید با کلاس ها و متد های درهم برهم که تغییر و تست آن ها سخت است سروکار نخواهید داشت و ساختار کد بسیار ساده است و شما نیاز به صرف زمان زیادی برای متوجه شدن آن ندارید.

Angular درواقع جاوااسکریپت است اما بهتر از آن است. Angular با TypeScript ساخته شده است که TypeScript نیز بر پایه Js Es6 است. شما نیاز ندارید که یک زبان کاملا جدید یاد بگیرید و هنوز هم ویژگی هایی مانند کلاس ها،interface ها، فضای نام ها و غیره را دارید.

نیازی به ابداع دوباره نیست. با Angular شما ابزار های بسیاری دارید که می توانید ساخت اپلیکیشن در مسیر صحیح را با آن ها انجام دهید. شما directive هایی برای دادن رفتار های پویا به تگ های HTML دارید. شما می توانید فرم های خود را با استفاده از FormControl بسازید و اعتبارسنجی های مختلفی را انجام دهید و به سادگی می توانید درخواست های HTTP ناهمزمان را به صفحات مختلف بفرستید و Routing ها را با کمترین دردسر تنظیم کنید و بسیار مزایای دیگری وجود دارد که Angular به شما ارائه می دهد.

کامپوننت های مجزا از یکدیگر. Angular تلاش کرد تا کامپوننت های وابسته به یکدیگر را از اپلیکیشن ها حذف کند. تزریق ها در NodeJS انجام می شود و شما به راحتی می توانید کامپوننت های مختلفی را جایگزین کنید.

همه ی عملیات های DOM درجایی که باید اتفاق بیفتد، اتفاق می افتد. با Angular شما ارائه و منطق برنامه را یکجا انجام نمی دهید که همین نشانه گذاری های شما را ساده تر و تمیز تر می کند.

تست کردن قلب کار است. با Angular شما می توانید عمل تست کردن را بطور کامل انجام دهید و هم از تست بصورت بخش بخش و هم از تست بصورت کامل با ابزار هایی مانند Jasmine و Protractor پشتیبانی می کند.

Angular هم مناسب موبایل و هم مناسب دسکتاپ است یعنی شما یک Framework برای چندین پلت فرم دارید.

Angular به صورت فعال نگهداری می شود و یک جامعه و محیط بزرگ دارد و شما می توانید ابزار ها و موارد مفید زیادی در آن پیدا کنید.

بنابراین می توانیم بگوییم که Angular فقط یک Framework نیست بلکه یک پلت فرم است که به توسعه دهندگان امکان ساخت اپلیکیشن برای وب،موبایل و دسکتاپ را می دهد.

پیچیدگی های Angular

متاسفانه باید بگویم که Angular یک Framework بزرگ و پیچیده با فلسفه مخصوص به خودش است که می تواند برای افراد تازه کار در فهم و استفاده از آن چالش برانگیز باشد. یادگرفتن مفاهیم Angular تنها کار نیست بلکه باید تکنولوژی های زیر را نیز یاد بگیرید.

پیشنهاد می شود که برای اپلیکیشن های Angular با typescript کد بزنید بنابراین باید Typescript را یاد بگیرید البته با Es6 نیز می توانید کد بزنید اما من کمتر دیده ام که این کار را بکنند. Typescript مجموعه بزرگ تری از جاوااسکریپت است پس شما باید بتوانید با آن کار کنید.

ایده ی خوبی است که شما با Angular CLI نیز آشنا باشید تا روند توسعه سریع تر شود.

Npm نیز برای نصب خود Angular و سایر کامپوننت های آن بسیار استفاده می شود بنابراین شما نیاز دارید تا با npm نیز بتوانید کار کنید.

یادگیری تنظیم اینکه چه کسی یک Task را اجرا کند مانند Gulp یا Grunt نیز می تواند بسیار کارآمد باشد زیرا قبل از اینکه اپلیکیشن برای تولید توسعه داده شود کار های زیادی وجود دارد که باید انجام شوند.

امروزه استفاده از minifier ها (مانند UglifyJS) و Bundler ها(مانند Webpack) نیز بسیار معمول است.

زمان توسعه دادن یک اپلیکیشن دیباگ کردن کد بسیار حیاتی می باشد بنابراین شما باید نحوه کار کردن با ابزار های دیباگ مانند Augury را بلد باشید.

اگرچه تست کردن اپلیکیشن های Angular بسیار مهم است اما این کار می تواند پیچیده باشد یکی از ابزار های بسیار محبوب برای این کار Jasmine (که یک Framework برای تست کردن است) و Protractor است.

همانطور که میبینید چیز های زیادی برای ساخت وب اپلیکیشن های سمت کلاینت باید یاد بگیرید اما ناامید نشوید زیرا منابع زیادی در اینترنت وجود دارد که به شما کمک می کند تا این تکنولوژی ها را یاد بگیرید که البته این کار کمی زمان نیاز دارد و البته در نتیجه شما تجربیات ارزشمندی را به دست خواهید آورد که خواهید توانست اپلیکیشن های پیچیده را به سادگی بسازید.

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

خلاصه

در این مقاله ما درباره Angular که یک framework سمت کلاینت است و پلت فرم های گوناگونی را پشتیبانی می کند، صحبت کردیم و برخی ویژگی ها و مفاهیم آن را پوشش دادیم. امیدواریم که این مقاله برای شما مفید باشد.    

نظر شما

0 نظر

نظری ثبت نشده است