Build Reactive Websites with RxJS: Master Observables and Wrangle Events
طراحی async-first جاوا اسکریپت، هم یک موهبت و هم یک نفرین بوده است. در حالی که حلقه رویداد (event loop) به ما اجازه میدهد تا فراخوانیهای AJAX را به راحتی انجام دهیم، ردیابی همه آنها میتواند کار سختی باشد. یک درخواست AJAX را میتوان به عنوان یک وعده (promise) مدل سازی کرد، اما بیش از یک promise و آن هم به طور ناگهانی و در حین اینکه کاربر در برنامه ما پیش میرود، به معنی وجود دسته ای از آیتمها برای ردیابی به صورت دستی (و حتی لغو) است. یکی از بدنامترین مثال ها، typeahead است که در قسمت Advanced Async پوشش داده خواهد شد. شما یاد خواهید گرفت که چگونه فراخوانیها و کنترل جریان را به RxJS واگذار کنید تا بتوانید روی بقیه برنامه خود تمرکز کنید.
از سوی دیگر، مدیریت وضعیت یک برنامه از زمان اختراع RAM، بلای جان برنامه نویسان بوده است که منجر به توصیههای مکرر مبنی بر «خاموش کردن و دوباره روشن کردن آن» و ریست کردن وضعیت کامپیوتر شد. جاوا اسکریپت با پیشفرض قرار دادن وضعیت سراسری (global) و تغییرپذیر (mutable) این وضعیت را بدتر کرده است. در سالهای اخیر، جامعه جاوا اسکریپت شروع به ارائهی راه حل هایی موثر برای این مشکل کرده است.
کتابخانه RxJS، جریانهای رویدادی (eventing flows) شما را بخش بندی میکند و هر عمل را در یک تابع واحد محصور میکند. علاوه بر این، RxJS تعداد زیادی عملگر کمکی را ارائه میکند که وضعیت داخلی را حفظ میکنند و به شما این امکان را میدهند تا نگرانیهای وضعیتی خود را به کتابخانه بسپارید. علاوه بر این عملگر ها، در مورد ngrx، یک کتابخانه مدیریت وضعیت که بر فراز RxJS ساخته شده است، در قسمت Advanced Angular خواهید آموخت. در بخش Reactive Game Development، سیستم وضعیت خودتان را که مختص HTML5 Canvas API است ایجاد خواهید کرد.
دنیای front-end میتواند مملو از پیچیدگی باشد. کتابخانه RxJS یک راه حل ارائه میدهد: Observableها. Observableها دیگر مکانیسمهای asynch جاوا اسکریپت مانند callbackها و promiseها را در یک روش جدید برای نگاه کردن به دادهها ادغام میکند. Observableها به جای کار با اشیا و ردیابی وضعیت آنها، رویدادهای ناهمگام (asynchronous) را به عنوان یک جریان میبینند. RxJS ابزارهایی را برای مدیریت، دستکاری و پردازش Observableها به منظور ساده سازی و سرعت بخشیدن به برنامههای front-end در اختیار شما قرار میدهد. با کمک کتاب Build Reactive Websites with RxJS (ساخت وبسایتهای واکنشی با آر ایکس جی اس)، با RxJS به Observable مسلط میشوید و کدهای جاوا اسکریپت ناهمگام خود را بسیار تمیزتر و سادهتر خواهید کرد.