Reactive Angular architectures with RxJS and NGRX (Redux)
Order for the data flow chaos
Highly interactive applications host a multitude of data flows with events and retrieved information. As these applications grow, the data flows gradually become more confusing and suddenly you can’t see the forest for the trees.
You will then learn how to manage your application states with facades and RxJS and when the additional use of the Redux pattern makes sense. This will then be explored in more detail using NGRX – the defacto standard for Redux under Angular. We cover the individual Building Blocks and more advanced patterns.
The course of the training at a glance!
- Creation of observables
- Factory Functions (Creation Operators)
- Operators and Marble Diagrams
- Cold vs. hot observables
- Subjects and Multicasting
- Implicit and explicit closure of observables
Reactive design and reactive thinking
- The steps of reactive design
- Structured implementation of a reactive solution
- Combining operators
- Case study of reactive design and implementation of reactive solutions
- Debugging reactive solutions
Advanced scenarios and operators based on case studies
- Advanced Creation Operators
- Operators for Error Handling
- Operators for Multicasting
- Operators for Filtering
- Operators for transformations
- Utility operators
- Writing your own operators
State Management with NGRX
- State Management with Facades and RxJS
- The Redux approach
- Comparison of different state libraries like NGRX, NGXS and Akita
- Implementing the Redux approach with NGRX
- Modeling states
- Working with Immutables
- Actions and action creators
- Feature modules and lazy loading
- Generating code with @ngrx/schematics
More NGRX concepts and libraries
- Selectors and memorization
- Handle side effects with @ngrx/effects
- Manage entities with @ngrx/entity
- Automate the interaction between NGRX and the backend with @ngrx/data
Best practices and state patterns
- Component design with Smart and Dumb Components
- Simplify the use of immutables with libraries
- Normalization of states
- Persistence of states
- States and routing
- Optimistic UI
- State Management and Forms, esp. Reactive Forms
FAQs on our workshops
How do your workshops and courses work?
Our seminars around Angular are a mixture of lecture, live coding and actual exercises. Together we implement what we have learned during the workshop directly on a example project. This mixture guarantees that the course never gets boring and “hands-on” is required instead of gray theory.
Who is the Angular hands-on training designed for?
Our Angular hands-on workshop is aimed at anyone who wants to develop applications with Angular in the future or is already doing so and now wants to better understand the background, context and building blocks of the framework.
For advanced Angular developers we offer advanced seminars and intensive trainings on specific use cases.
Where do the Angular workshops take place?
Our trainings take place as public workshops in seminar rooms at central hotels in Germany, Austria and Switzerland. In-House company workshops take place at your office or conference room.
All courses are also available as remote workshops, where we meet online in a virtual classroom and do the training via video calls, screen sharing and live coding.
Who are the trainers?
Our workshops are held by experienced trainers and software architects. In recent years, we have provided Angular training to well-known companies – including well-known banks, insurance companies, industrial groups. Trainers include well-known conference speakers, authors of books and professional articles, bloggers, Google Developer Experts and university lecturers.
At what times are the training sessions held?
Especially for dedicated company trainings, we are happy to accommodate you. Typical times are 9:00AM to 4:30PM / 5:00PM. Some of our English-language workshops are timed so that you can also attend at US friendly times.
Can we also book online training courses?
Absolutely. In fact, since the pandemic, this has been our main business model and we have had very good experience with it. We use a combination of screen sharing, interactive online whiteboards, and are happy to connect to your computer for support during the exercises if you wish. As with our on-site training, we use a combination of short presentations, discussions, live coding and hands-on labs.
Since there is no travel involved, you also save time and money. We can also respond more flexibly to your scheduling needs.
Can we adapt the training for our purposes?
Yes, very much so. In fact, that’s one of the benefits of dedicated corporate training. You are welcome to weight, shorten or add to our agenda proposals. As a rule, we also coordinate with your trainer about 2 weeks before the training. If you wish, we can also arrange it earlier.
Among other things, Angular’s wide distribution speaks for itself, but also the fact that Google, an Internet giant that also uses the framework very intensively, is behind it. Google alone has over 2600 solutions based on it. Due to the wide distribution, there is a large community and thus a lot of know-how on the market as well as (free and commercial) products that are adapted to Angular. In addition, Angular provides much of what you need for large applications out of the box: test automation, form management, routing, etc. In this respect, you get a stack whose components are coordinated and work together in the long term.
How do you compensate for different prior knowledge?
The good news up front is that participants with different levels of prior knowledge are the rule, not the exception, in adult education. That’s why you’ll find optional fade-in hints and bonus exercises on our exercise sheets, for those who are a little faster. Of course, we also provide personal support for the exercises.
How many participants are recommended?
If you book a company training with us, we leave this decision to you in principle. However, experience shows that there should not be more than 15 participants, especially since a seminar lives very much from questions, discussions and practical exercises.
What software do we need?
Please install the following software packages on your computer:
– NodeJS in current version (we test with current LTS version).
– Angular CLI (npm i -g @angular/cli)
– Visual Studio (free) or WebStorm/IntelliJ (commercial)