Course description
Functional and Reactive Programming Using RxJava 2
Functional and Reactive Programming using RxJava 2 is a comprehensive hands-on advanced Java training workshop geared for experienced developers who wish to explore concurrent, asynchronous and reactive programming APIs and techniques in Java. Throughout this three day course students will become familiar with Functional programming and procssing data stream. They will use the Java Concurrency API to implement asynchronous processeses, making use of the enhancements made to this API in Java 8. Students will then continue to develop both event produces and consumers using Java’s ReactiveX implementation (RxJava 2). RxJava 2 is a complete rewrite of the RxJava API in 2014. RxJava has always been one of the front-runners of reactive programming. RxJava 2 is a complete implementation of the Reactive Streams specification, providing an even better interoperability between reactive libraries.
Do you work at this company and want to update this page?
Is there out-of-date information about your company or courses published here? Fill out this form to get in touch with us.
Who should attend?
This is an intermediate level Java SE (JSE) developer course, designed for experienced Java 8 developers. Attendees should have current hands-on experience in developing basic Java 8 applications.
Training content
Session: Lambda Expressions; Collections and Streams
Lesson: Introduction to Lambda Expressions
- Functional vs OO Programming
- Anonymous Inner classes
- Lambda Expression Syntax
- Functional Interfaces
- Method references
- Constructor references
Lesson: Java 8 Collection Updates
- Introduce the ConcurrentHashMap
- Lambda expressions and Collections
- Exercise: Functional Collection
Lesson: Streams
- Processing Collections of data
- The Stream interface
- Reduction and Parallelism
- Filtering collection data
- Sorting Collection data
- Map collection data
- Find elements in Stream
- Numeric Streams
- Create infinite Streams
- Sources for using Streams
- Exercise: Working with Streams
Lesson: Collectors
- Creating Collections from a Stream
- Group elements in the Stream
- Multi-level grouping of elements
- Partitioning Streams
- Exercise: Collecting
Session: Multithreading and Concurrency
Lesson: Java 8 Concurrency Updates
- The common thread pool
- Atomic variables
- LongAdder and LongAccumulator
- CompletableFuture
- Non-blocking asynchronous tasks
- Exercise: CompletableFuture
Session: Introduction to RXJava2
Lesson: Introduction
- Introduce ReactiveX and RxJava 2
- The Observer and Iterator pattern and functional programming
- Introduce the RxJava 2 Building blocks
- Discuss hot and cold observables
- Registering operators
- Subscribing to an Observable
- Exercise: RxJava Introduction
Lesson: Testing Event Sources (Introduction)
- Introduce the TestObserver and TestSubscriber
- Testing Observable implementations
- Introduce some commonly used assertions
- Exercise: Testing the Observable
Lesson: Operators
- Introduce RxJava 2 Operators
- Show the use of RxMarbles (marble diagrams)
- Explain some commonly used operators
- Callback operators
- Exercise: RxJava Operations
Lesson: Creating the event publisher
- Implementing the event source
- Introduce the different types of event publishers
- Convenience methods for creation of publishers
- Creating an event source using an Emitter
- Pre-defined observables
- The defer operator
- ConnectableObservable
- Exercise: RxJava Observables
Session: Working with RxJava2
Lesson: Subjects
- RxJava subjects
- Enable multicating using Subjects
- Introduce most commonly used Subject implementations
- Exercise: RxJava Subjects
Lesson: RxJava Schedulers (Multithreading)
- Thread usage of Observable, Operator and Observer
- Using the subscribeOn method
- Introduce the Scheduler implementations
- Using the observeOn method
Lesson: Testing (multi-threaded) Event Sources
- Testing Asynchronous code
- Discuss strategies for testing event sources
- Waiting for source to complete (await methods)
- Use RxJava extension mechanism to Scheduler instances used during test
- The JUnit 5 @ExtendsWith and @RegisterExtension annotations
- Using the TestScheduler to advance time during test
- Exercise: Testing Asynchronous Event sources
Lesson: Backpressure
- Strategies for dealing with Backpressure
- Reactive Streams
- Flowable and Processor
- “reactive pull” backpressure
- Exercise: RxJava Backpressure
Lesson: Exception Handling
- Handling errors in onError
- Exception handling strategies
- Using onErrorReturn or onErrorNext operators
- Using the retry operators
- The Global Error Handler
- Exercise: Exception Handling
Costs
- Price: $2,195.00
- Discounted Price: $1,426.75
Quick stats about Trivera Technologies LLC?
Over 25 years of technology training expertise.
Robust portfolio of over 1,000 leading edge technology courses.
Guaranteed to run courses and flexible learning options.
Contact this provider
Trivera Technologies
Trivera Technologies is a IT education services & courseware firm that offers a range of wide professional technical education services including: end to end IT training development and delivery, skills-based mentoring programs,new hire training and re-skilling services, courseware licensing and...