2 options
Mastering reactive JavaScript : create applications empowered with real-time data without compromising performance / Erich de Souza Oliveira.
- 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.