

AngularJS چیست
AngularJS یک فریمورک ساختاری برای web application های پویا است. این framework به شما اجازه میدهد تا HTML را به عنوان زبان قالب خود انتخاب کنید و سینتکس های HTML را برای بیان واضح اجزای نرم افزار، گسترش دهید. Data binding و dependency injection Angular، بیشتر کدهایی را که شما که شما مجبور به نوشتن آن هستید را از بین می برد. همه ی این کارها در مرورگر انجام میشود و این باعث شده است که با همه تکنولوژی های Server سازگاری خوبی داشته باشد.
Angular، همه ورژن های HTML را پشتیبانی میکند و برای نرم افزارها طراحی شده است. HTML یک زبان اعلانی عالی برای اسناد استاتیک میباشد زیاد که شبیه ایجاد کردن نرم افزار ها نیست، و در نتیجه ساختن نرم افزار ها با آن، یک تمرین است که باید چه کاری انجام دهید تا مررورگر را فریب بدهید که کار شما را انجام بدهد.
عدم تطبیق impedance بین نرم افزار های داینامیک و متن های استاتیک، اغلب با مراحل زیر حل می شوند:
library : مجموعه ای از توابعی است که در هنگام نوشتن برنامه های وب مفید هستند. library یک نمونه کد آماده است و زمانی که نیاز باشد به library ارجاع میشود و تابع مناسب برای آن فراخوانی می نماید، به طور مثال jQuery.
framework: یک پیاده سازی خاص از یک نرم افزار تحت web، که کد خود را در آن وارد میکنید.frameworkآماده شده است و زمانی که به آن نیاز باشد، فراخوانی میشود. مانند durandal، ember و … .
اAngular رویکرد دیگری هم دارد؛ سعی میکند که عدم تطبیق impedance بین متن های HTML محور و آنچه نرم افزارها برای ساختن HTML نیاز دارند را به حداقل برسانند.
Angular به مرورگر از طریق یک ساختار که به آن رهنمود میگویند، دستورات جدید می آموزد. مانند :
Data binding.
ساختار کنترل DOM برای تکرار، پنهان کردن و نشان دادن قطعات DOM (Document Object Model)
پشتیبانی از فرم ها و اعتبار سنجی فرم ها.
اضافه کردن رفتار های جدید به المنت های DOM، همانند هندل کردن رخداد های DOM.
گروه بندی HTML به اجزای قابل استفاده مجدد.
یک راه حل سمت سرویس گیرنده کامل
Angular تنها قطعه واحد در پازل کلی ساختن وب اپلیکیشن های سمت گیرنده نیست. این همه ی کد های DOM و AJAX که شما دستی نوشتید و تعریف کردید را هندل میکند و در داخل یک ساختار به خوبی قرار میدهد. این کار Angular را در مورد اینکه چگونه نرم افزار های CRUD(Create, Read, Update, Delete) باید ساخته شود را خود مختار میکند. اما زمانی که خود مختار شد، سعی میکند مطمئن شود که نظر آن فقط یک نقطه شروع است و به شما به راحتی میتوانید آن را تغییر بدهید. Angular با موارد زیر همراه میشود:
• هر چیزی که شما برای ساخت نرم افزار های CRUD در یک مجموعه ی منسجم لازم دارید : Data-binding، دستورات قالبی ساده، اعتبار سنجی فرم ها، روتینگ، deep-linking، اجزای قابل استفاده مجدد و dependency injection.
• گزارش آزمون پذیری : تست واحد ها، تست های پشت سر هم، mock ها و کنترلر تست ها.
• Seed application و طرح های دایرکتوری و اسکریپت های تستی به عنوان نقطه شروع٫
نقطه شروع شیرین Angular
Angular با ارائه کردن یک سطح بالاتر از مفهومات، توسعه نرم افزار ها را برای توسعه دهندگان آسان کرده است. همانند همه مفهوم ها، این نیز با میزان انعطاف پذیریش می آید. به عبارت دیگر، Angular برای همه نرم افزار ها مناسب نیست. Angular با روش نرم افزاری CRUD ساخته شده است. خوشبختانه نرم افزار های CRUD اکثریت وب اپلیکیشن ها را پشتیبانی میکند. برای اینکه بدانید که Angular با چه نرم افزار هایی خوب کار میکند، به هر حال، به شما کمک میکند که بدانید کدام نرم افزار ها مناسب Angular نیستند.
بازی ها و ویرایشگر های GUI مثال هایی از نرم افزار های فشرده و استفاده کننده از ترفند های DOM هستند. این نوع برنامه ها با نرم افزار های CRUD فرق دارند، و در نتیجه برای Angular مناسب نیستند. در این گونه موارد بهتر است از کتابخانه هایی با سطح مفهوم پایین تری استفاده شود؛ همانند jQuery.
(Zen) Angular
Angular بر این عقیده ساخته شده است که برای ساختن UI و ترکیب اجزای نرم افزار، کد های اعلانی بهتر از کد های دستوری هستند، در حالی که کد های دستوری برای بیان منطق کسب و کار بسیار عالی هستند.
• این ایده که دستکاری DOM را از منطق برنامه جدا کنیم، ایده خوبی است. این کار به طور چشمگیری قابلیت تست کردن کد را بالا میبرد.
• این که به تست نرم افزار به اندازه نوشتن آن اهمیت داده شود واقعا خیلی ایده خوبی است. سختی تست کردن به طور چشم گیری به ساختاری که کد نوشته میشود، ارتباط دارد.
• اینکه قسمت سمت سرویس گیرنده و قسمت سمت سرور را در یک نرم افزار از هم جدا کنید، بسیار خوب است. این کار باعث میشود که توسعه نرم افزار به صورت موازی پیش برود و اجازه استفاده مجدد را به هر دو طرف میدهد.
• در واقع این که یک فریمورک توسعه دهندگان را در کل زمان توسعه یک نرم افزار راهنمایی کند بسیار کمک بخش است : از قسمت طراحی UI، تا قسمت طراحی منطقی و تست.
• این که همیشه وظایف عمومی را بدیهی و وظایف سخت را ممکن سازید، کار بسیار خوبی است.
با انگولار دیگر لازم نیست کارهای زیر را انجام دهید:
Registering callbacks : کد شما را در هم ریخته میکند، و دیدن آن را مثل جنگل برای درختان میکند. پاک کردن کد های پر تکرار مانند callback ها کار خوبی به نظر میرسد. این کار به شدت مقدار کد های جاوا اسکریپت که شما باید بنویسید را کاهش میدهد و دیدن اینکه کد شما چه کاری انجام میدهد را آسان میکند.
دستکاری فایل های HTML DOM به صورت خودکار و برنامه نویسی :
دستکاری فایل های HTML DOM اساس نرم افزار های AJAX است، اما کار سنگین و ارور پذیری است. با تعریف صریح اینکه زمانی که حالت نرم افزار تغییر پیدا میکند UI وبسایت چگونه تغییر پیدا کند، نیازی به عوض کردن کدهای سطح پایین DOM نیست و انجام این وظایف از دوش شما برداشته میشود. بیشتر نرم افزار هایی که با Angular نوشته میشود هیچ گاه نیاز به برنامه نویسی تغییر DOM ندارند، ولی اگر شما بخواهید میتوانید این کار را انجام دهید.
مرتب کردن داده به UI و از UI:
عملیات CRUD اکثر وظایف نرم افزار های AJAX را تشکیل میدهد. روند مرتب کردن داده از سرور به یک شی داخلی به صورت فرم HTML، به کاربر اجازه اصلاح و تغییر فرم، اعتبار سنجی فرم، نشان دادن ارور های اعتبار سنجی، بازگشت به مدل داخلی، و سپس بازگشت به سرور را میدهد، که باعث ساخته شدن کدهای متنی زیادی میشود. Angular تقریبا بیشتر این متن ها را از بین میبرد، و کدهایی که روند اصلی نرم افزار را توصیف میکنند را به جای اجرای کل جزئیات، نگه میدارد.
نوشتن هزاران کد اولیه فقط برای شروع:
معمولا شما برای نوشتن یک نرم افزار AJAX ساده “Hello world” نیاز به نوشتن کدهای اولیه ای زیادی است. با Angular شما میتوانید به راحتی نرم افزار را با استفاده از سرویس ها بوت استرپ کنید. این به شما اجازه میدهد که سریعتر از ویژگی های توسعه استفاده کنید. به عنوان یک پاداش، شما کنترل کامل بر روند مقدار دهی اولیه در تست خودکار را دریافت میکنید.
دسته بندی:زبان های برنامه نویسی فریم ورک نقد و بررسی