Build Reactive Websites with RxJS: Master Observables and Wrangle Events

تاریخ: 1400/10/18 22:54
توسط: MotoMan
امتیاز: ۲
تعداد بازدید: ۲۱۹۷
دیدگاه ها: ۰
برچسب ها: Java Script |Reactive Prgramming |
کتاب Build Reactive Websites with RxJS
Pragmatic Bookshelf
Randall Koutnik
9781680502954
2019
196
English

طراحی 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 مسلط می‌شوید و کد‌های جاوا اسکریپت ناهمگام خود را بسیار تمیزتر و ساده‌تر خواهید کرد.

 

 

Table of Contents:
- 1. Creating Observables
- Introducing Rx Concepts
- Building a Stopwatch
- Using a Subscription
- Experimenting with Observables
- What We Learned
- 2. Manipulating Streams
- Translating Pig Latin with Flatten and Reduce
- Flattening
- Reducing
- Debugging an Observable Stream
- Typeahead
- What We Learned
- 3. Managing Asynchronous Events
- Making AJAX Requests
- Handling Errors
- Promises vs. Observables with AJAX
- Loading with Progress Bar
- When Good AJAX Goes Bad
- Progressive and Ordered Loading
- What We Learned
- 4. Advanced Async
- The Spec
- Preventing Race Conditions with switchMap
- Debouncing Events
- Adding Debounce to the Typeahead
- Building a Stock Ticker
- What We’ve Learned
- 5. Multiplexing Observables
- The Problem with Cold Observables
- Multicasting with the Subject Class
- Building a Chat Room
- What We Learned
- 6. Using HTTP in Angular
- Generating a New Project
- Displaying Returned Data
- Saving New Data
- Routing to Components
- Linking Between Components
- Editing a Single Photo
- Adding in Analytics
- Intercepting HTTP Calls
- What We Learned
- 7. Building Reactive Forms in Angular
- Building a Phone Number Input
- Creating a Phone Input with Angular
- Validating an Input
- Building a Pizzeria Registration Form
- Using Advanced Validation
- Creating a Pizza Ordering Form
- What We Learned
- 8. Advanced Angular
- Building Performant Applications
- Managing State with ngrx
- What We Learned
- 9. Reactive Game Development
- Creating Your Own Operator
- Animating Objects
- Calling next with Schedulers
- Architecting a Game
- Tracking User Input
- Creating Enemies
- Detecting Collisions
- What We Learned
- Bonus Points

کانال تلگرام سایت

گروه تلگرام سایت

like می پسندم
dislike به درد نمی خوره
مطالب مشابه
دیدگاه ها
  • اولین نفری باشید که نظری می دهید!
loading...

لطفا منتظر بمانید...