این روزها بستر فریمورک ها بسیار گسترده شده است و انواع مختلفی در دنیای کامپیوتر رخ نشان داده اند. یکی از این فریمورک ها فریم ورک انگولار جی اس است که از توسعه زبان جاوا اسکریپت بدست آمده است. در این مقاله به شما خواهیم گفت که angular چیست و زبان برنامه نویسی انگولار در چه زمینه هایی می تواند به ما کمک کند.
انگولار یا Angular چیست؟
معنی Angular در فارسی به معنای “زاویه دار” است. اما در واقع، Angular یک فریمورک ساختاری برای وباپلیکیشنهای پویا است. این فریمورک متنباز تحت وب بر پایه JavaScript توسعه داده شده است. Angular به شما امکان میدهد تا HTML را به عنوان زبان قالب خود انتخاب کرده و سینتکسهای HTML را برای اظهار صریح و روشن اجزای نرمافزار گسترش دهید.
بهتر است بدانید که در بعضی گویشها به این فریمورک به نام “آنگولار” نیز اشاره میشود. Angular یا آنگولار، تمام ورژنهای HTML را پشتیبانی میکند و برای توسعه نرمافزارها طراحی شده است. برای کسب اطلاعات بیشتر در حوزه تکنیکهای کدنویسی و برنامهنویسی، میتوانید مقاله ما را مطالعه نمایید.
HTML یک زبان اعلانی عالی برای اسناد ایستا است که بسیار متفاوت از ایجاد نرمافزارها است. به همین دلیل، ساختن نرمافزارها با استفاده از آن یک تمرین است که به شما یاد میدهد چگونه کارهایی انجام دهید و مرورگر را فریب دهید تا کارهای شما انجام شود. قبلاً در یک مقاله جامع، توضیح دادهایم که HTML چیست و کاربردهای آن چیست.
هدف تیمهای توسعه، طراحی و تست این نوع برنامهها برای شناسایی مشکلات احتمالی است و آنها با ارائه یک فریمورک بر پایه مدل-نما-کنترل (MVC) و مدل-نما-مدل-نما (MVVM)، به توسعهی وباپلیکیشنهای تکصفحهای کمک میکنند.
AngularJs چیست؟
حالا در پاسخ به angularjs چیست بایستی گفت انگولار جی اس در سال ۲۰۰۹ در شرکت گوگل طراحی شد. پس از استقبال از این فریمورک، در سال ۲۰۱۶ نسخه دوم انگولار عرضه شد که تفاوت زیادی با انگولار جی اس داشت. در واقع می توان گفت angularjs نسخه ی قدیمی angular است.
حالا که میدانید angular چیست ، این سوال پیش می آید که اگر impedance بین نرم افزار پویا و متن های ایستا با یکدیگر تطبیق نداشته باشید چه کار کنیم؟
راه حل عدم تطبیق امپدانس بین نرم افزار های پویا و متن های ایستا
برای رفع مشکل عدم تطبیق امپدانس بین نرم افزار های پویا و متن های ایستا، اغلب با طی کردن مراحل زیر می توان به نتیجه مطلوبی رسید:
۱- استفاده از کتابخانه
مجموعه ای از توابع است که در هنگام نوشتن برنامه های وب مفید هستند. کتابخانه یک نمونه کد آماده است و زمانی که نیاز باشد به کتابخانه رجوع می شود و تابع مناسب برای آن صدا زده می شود، مثل jQuery.
۲- چرا از فریم ورک انگولار استفاده کنیم؟
دلایل عمدهای وجود دارند که باعث شده بتوانیم به سادگی جواب سوال چرا از فریم ورک انگولار استفاده کنیم را بدهیم. این دلایل شامل:
- پشتیبانی گوگل از پروژه- یکی از بزرگترین مزایای AngularJS پشتیبانی گوگل از آن است.
- استفاده از زبان TypeScript – این زبان یک زبان عالی برای JavaScript است که امنیت بالایی دارد.
- Declarative UI – انگولار از HTML جهت تعریف کردن UI اپلیکیشن های خود استفاده می کند.
- POJO – با انگولار شما دیگر نیازی به تابعه های getter و setter اضافه ندارید.
- تست آسان – فریم ورک انگولار در تمام نرم افزارهایی که از MVC پشتیبانی می کنند کار می کند و نیازی به نرم افزار اضافه ای نیست
- ساختار ماژولار
آنگولار رویکرد دیگری هم دارد؛ سعی میکند که عدم تطبیق امپدانس بین متن های HTML محور و آنچه نرم افزارها برای ساختن سازه های HTML نیاز دارند را به حداقل برسانند.
انگولار به مرورگر از طریق یک ساختار که به آن رهنمود می گویند، دستورات جدید می آموزد. مانند :
- Data binding.
- ساختار کنترل DOM برای تکرار، پنهان کردن و نشان دادن قطعات Document Object Model) DOM)
- پشتیبانی از فرم ها و اعتبار سنجی فرم ها.
- اضافه کردن رفتار های جدید به المنت های DOM، همانند هندل کردن رخداد های DOM.
- گروه بندی HTML به اجزای قابل استفاده مجدد.
در صورتیکه تمایل دارید درباره data binding بیشتر بدانید پیشنهاد می کنم مقاله دیتا بایندینگ چیست را مطالعه نمایید.
یک روش برنامه نویسی سمت Client کامل
انگولار تنها قطعه واحد در پازل کلی ساختن وب اپلیکیشن های سمت گیرنده نیست. آنگولار همه ی کد های DOM و AJAX که شما دستی نوشتید و تعریف کردید را هندل می کند و در داخل یک ساختار به خوبی قرار می دهد. این کار انگولار را در مورد اینکه چگونه نرم افزار های CRUD(Create, Read, Update, Delete) باید ساخته شود را خود مختار میکند. اما زمانی که خود مختار شد، سعی میکند مطمئن شود که نظر آن فقط یک نقطه شروع است و شما به راحتی میتوانید آن را تغییر بدهید. آنگولار با موارد زیر همراه می شود:
- هر چیزی که شما برای ساخت نرم افزار های CRUD در یک مجموعه ی منسجم لازم دارید : Data-binding، دستورات قالبی ساده، اعتبار سنجی فرم ها، روتینگ، deep-linking، اجزای قابل استفاده مجدد و dependency injection.
- گزارش آزمون پذیری : تست واحد ها، تست های پشت سر هم، mock ها و کنترلر تست ها.
- Seed application و طرح های دایرکتوری و اسکریپت های تستی به عنوان نقطه شروع.
نقطه شروع شیرین angular چیست؟
انگولار با ارائه کردن یک سطح بالاتر از مفاهیم، توسعه نرم افزار ها را برای توسعه دهندگان آسان کرده است. همانند همه مفهوم ها، این نیز با میزان انعطاف پذیریش می آید. به عبارت دیگر، انگولار برای همه نرم افزار ها مناسب نیست. انگولار با روش نرم افزاری CRUD ساخته شده است. خوشبختانه نرم افزار های CRUD اکثریت وب اپلیکیشن ها را پشتیبانی میکند. به هر حال، به شما کمک میکند که بدانید کدام نرم افزار ها مناسب انگولار نیستند.
بازی ها و ویرایشگر های GUI مثال هایی از نرم افزار های فشرده و استفاده کننده از ترفند های DOM هستند. این نوع برنامه ها با نرم افزار های CRUD فرق دارند، و در نتیجه برای انگولار مناسب نیستند. در این گونه موارد بهتر است از کتابخانه هایی با سطح مفهوم پایین تری استفاده شود؛ همانند jQuery.
ساختار angular چیست؟
برنامه نویسی انگولار بر این عقیده ساخته شده است که برای ساختن UI و ترکیب اجزای نرم افزار، کد های اعلانی بهتر از کد های دستوری هستند، در حالی که کد های دستوری برای بیان منطق کسب و کار بسیار عالی هستند.
- دستکاری DOM را از منطق برنامه جدا کنیم، ایده خوبی است. این کار به طور چشمگیری قابلیت تست کردن کد را بالا میبرد.
- تست نرم افزار به اندازه نوشتن آن اهمیت داده شود واقعا خیلی ایده خوبی است. سختی تست کردن به طور چشم گیری به ساختاری که کد نوشته میشود، ارتباط دارد.
- اینکه قسمت سمت سرویس گیرنده و قسمت سمت سرور را در یک نرم افزار از هم جدا کنید، بسیار خوب است. این کار باعث میشود که توسعه نرم افزار به صورت موازی پیش برود و اجازه استفاده مجدد را به هر دو طرف میدهد.
- یک فریمورک توسعه دهندگان را در کل زمان توسعه یک نرم افزار راهنمایی کند بسیار کمک بخش است : از قسمت طراحی UI، تا قسمت طراحی منطقی و تست.
- این که همیشه وظایف عمومی را بدیهی و وظایف سخت را ممکن سازید، کار بسیار خوبی است.
با انگولا ر دیگر لازم نیست چه کارهایی را انجام دهید؟
Registering callbacks : کد شما را در هم ریخته میکند، و دیدن آن را مثل جنگل برای درختان میکند. پاک کردن کد های پر تکرار مانند callback ها کار خوبی به نظر میرسد. این کار به شدت مقدار کد های جاوا اسکریپت که شما باید بنویسید را کاهش میدهد و دیدن اینکه کد شما چه کاری انجام میدهد را آسان میکند.
دستکاری فایل های HTML DOM به صورت خودکار و برنامه نویسی
دستکاری فایل های HTML DOM اساس نرم افزار های AJAX است، اما کار سنگین و ارور پذیری است. با تعریف صریح اینکه زمانی که حالت
نرم افزار تغییر پیدا میکند UI وبسایت چگونه تغییر پیدا کند، نیازی به عوض کردن کدهای سطح پایین DOM نیست و انجام این وظایف از دوش شما برداشته میشود. بیشتر نرم افزار هایی که با انگولار نوشته میشود هیچ گاه نیاز به برنامه نویسی تغییر DOM ندارند، ولی اگر شما بخواهید میتوانید این کار را انجام دهید.
مرتب کردن داده به UI و از UI در زبان انگولار چیست ؟
عملیات CRUD بیشتر وظایف نرمافزارهای AJAX را تشکیل میدهد. این عمل شامل روند انتقال دادهها از سرور به یک شی داخلی در فرم HTML است، که به کاربر اجازه میدهد تا فرم را اصلاح و تغییر دهد، فرم را اعتبار سنجی کند، خطاهای اعتبار سنجی را نمایش دهد، دادهها را به شی داخلی برگرداند، و سپس دادهها را به سرور ارسال کند. این فرآیند باعث تولید کدهای متنی زیادی میشود. Angular تقریباً این تکرارهای متنی را کاهش میدهد و کدهایی که روند اصلی نرمافزار را توصیف میکنند را به جای اجرای جزئیات کمتری نگه میدارد.