My Account Log in

2 options

Mastering reactive JavaScript : create applications empowered with real-time data without compromising performance / Erich de Souza Oliveira.

Ebook Central College Complete Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Oliveira, Erich de Souza, author.
Language:
English
Subjects (All):
JavaScript (Computer program language).
Application software--Development.
Application software.
Physical Description:
1 online resource (287 pages) : illustrations
Edition:
1st edition
Place of Publication:
Birmingham, England ; Mumbai, [India] : Packt Publishing, 2017.
System Details:
text file
Biography/History:
Oliveira Erich de Souza: Erich de Souza Oliveira is a developer with 10 years of experience, mostly in JavaScript, Scala, and Java. He has already worked for big companies and start-ups and currently works as a Chief Technology Officer for a brazilian video platform, called Winnin. He is the author of Studio. js (microservices library for JavaScript) and can be found talking and attending South American conferences. He has a special interest in functional reactive programming, micro services, information retrieval, and recommender systems. Twitter: @oliveira_erich
Summary:
Expand your boundaries by creating applications empowered with real-time data using RxJs without compromising performance About This Book Handle an infinite stream of incoming data using RxJs without going crazy Explore important RxJs operators that can help you improve your code readability Get acquainted with the different techniques and operators used to handle data traffic, which occurs when you receive data faster than you can process Who This Book Is For If you're a web developer with some basic JavaScript programming knowledge who wants to implement the reactive programming paradigm with JavaScript, then this book is for you. What You Will Learn Get to know the basics of functional reactive programming using RxJs Process a continuous flow of data with linear memory consumption Filter, group, and react to changes in your system Discover how to deal with data traffic Compose operators to create new operators and use them in multiple observables to avoid code repetition Explore transducers and see how they can improve your code readability Detect and recover from errors in observables using Retry and Catch operators Create your own reactive application: a real-time webchat In Detail If you're struggling to handle a large amount of data and don't know how to improve your code readability, then reactive programming is the right solution for you. It lets you describe how your code behaves when changes happen and makes it easier to deal with real-time data. This book will teach you what reactive programming is, and how you can use it to write better applications. The book starts with the basics of reactive programming, what Reactive Extensions is, and how can you use it in JavaScript along with some reactive code using Bacon. Next, you'll discover what an Observable and an Observer are and when to use them.You'll also find out how you can query data through operators, and how to use schedulers to react to changes. Moving on, you'll explore the RxJs API, be introduced to the problem of data traffic (backpressure), and see how you can mitigate it. You'll also learn about other important operators that can help improve your code readability, and you'll see how to use transducers to compose operators. At the end of the book, you'll get hands-on experience of using RxJs, and will create a real-time web chat using RxJs on the client and server, providing you with the complete package to master RxJs. Style and approach This easy-to-follow guide is fu...
Contents:
Cover
Copyright
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Table of Contents
Preface
Chapter 1: What Does Being Reactive Mean?
The reactive paradigm
Why do I need it?
Installation of tools
Node.js
bacon.js
RxJS
Your first code using reactive programming
Summary
Chapter 2: Reacting for the First Time
The bacon.js observables
Creating our first observable
Observables from DOM events (asEventStream)
Observables from promises (fromPromise)
Observable node event emitter (fromEvent)
Observables from an array (fromArray)
Observables from an array (sequentially)
Observables from an interval (interval)
Observables from other sources
Properties
Changes in an observable
Reacting to changes
Subscribing
Subscribing using the onValue() method
Subscribing using the log method
Subscribing using the assign method
Acting when an error occurs
Reading how an operator works
Transforming events using bacon.js
Reusing observables
Observables' lazy evaluation
Chapter 3: A World Full of Changes - Reactive Extensions to the Rescue
RxJS observables
Difference between bacon.js and RxJS observables
Hot and cold observables
Installing RxJS
Creating an observable
Creating an observable from iterable objects
Creating an observable from a sequence factory
Creating an observable using range ()
Creating an observable using period of time
Creating an observable from callbacks
Creating an observable from a promise
Creating empty observables
Creating an observable from a single value
Creating an observable from a factory function
Creating an observable from arbitrary arguments
Creating an observable from an error
Creating observables from DOM events (or EventEmitter).
Creating an observable from an arbitrary source
Subscribing to changes (Observer)
RxJS Subjects
RxJS Disposable
RxJS Schedulers
Chapter 4: Transforming Data - Map, Filter, and Reduce
Adding operators to observables
The map() operator
The flatMap() operator
The filter() operator
The reduce() operator
Chapter 5: The World Changes Too Fast - Operators to Deal with Backpressure
What is backpressure?
Common strategies to deal with backpressure
Lossy strategies to deal with backpressure
The throttle() operator
The sample() operator
The debounce() operator
The pausable() observables
Loss-less operators to deal with backpressure
Buffering
The bufferWithCount() operator
The bufferWithTime() operator
The bufferWithTimeOrCount() operator
Pausable observables (with buffer)
Controlled observables
More ways to filter data
The first() operator
The take() operator
The takeLast() operator
The takeWhile() operator
The skip() operator
The skipWhile() operator
Chapter 6: Too Many Sources - Combining Observables
When do I need to combine observables?
Running observables
Concatenating observables
Using the concat() operator
Using the merge() operator
Using the concatAll() operator
Using the mergeAll() operator
Combining observables
Using the forkJoin() operator
Using the zip() operator
Using the zipIterable() operator
Chapter 7: Something is Wrong - Testing and Dealing with Errors
Dealing with errors
Treating an error
The catch() operator
The onErrorResumeNext() operator
The retry() operator
The mergeDelayError() operator
Testing our application
Testing in the server
Testing in the browser
Testing applications using RxJS
Summary.
Chapter 8: More about Operators
The road so far
The fundamentals of RxJS
The map() operator versus the flatMap() operator
Challenge - Creating a function to filter elements using only the flatMap() operator
Filtering data
Aggregating data
Going beyond the basics
Dealing with backpressure
Other important operators
The flatMapLatest() operator
The flatMapFirst() operator
The finally() operator
The groupBy() operator
The do() operator
Chapter 9: Composition
What is a transducer?
Available transducer implementations for JavaScript
The transducers-js API
Using transducers
Using transducers with RxJS
Testing transducers
A performance comparison for JavaScript code using transducers
Chapter 10: A Real-Time Server
The web chat server
Creating the project
The architecture of the server
Implementing the server
DataSource
Service to send messages
Test implementation
Service implementation
Service to listen to new messages
Service to block messages from a given user
Service to send a command
Handling WebSocket connections
Scaling the server
Connecting to Redis
Using Redis as the DataSource for messages
Chapter 11: A Real-Time Client
Installing dependencies
The structure of our client
Building the application for the first time
Connecting to the server application
Using RxJS to manage user input
Connecting user interactions and server communication
Improving interaction with RxJS
Batching changes to the DOM
Testing the application
Index.
Notes:
Includes index.
Description based on online resource; title from PDF title page (ebrary, viewed June 23, 2017).
ISBN:
9781786463463
1786463466
OCLC:
990194768

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account