Building Applications with React and Redux in ES6

coryWelcome to this review of the Pluralsight course “Building Applications with React and Redux in ES6” by Cory House.

This is a brand new course and I am writing this review on the same day that it was published.

Cory is a Microsoft MVP in C#, founder of OutlierDeveloper.com, avid tech reader, and speaker.

He believes in clean code, pragmatic development, and responsive native UIs.

He has also created reactjsconsulting.com, and is the author of an earlier Pluralsight course on React: Building Applications with React and Flux.

About the Course

This course assumes that you have some previous experience with React JS. There are a few different options available if you have no experience at all. I will only mention three courses as I haven’t seen any of the others.

The first one is React JS Fundamentals by Liam McLennan. This was the first Pluralsight course on React which was published a couple of years old. As far as I am aware all of the concepts presented in that course are equally valid today, and I believe that it will get you up to speed quickly.

Samer Buna has produced React JS: Get Started, and this course builds an in-browser math skills kids’ game from scratch.

Cory has a previous course Building Applications with React and Flux. It is one of the highest rated courses on Pluralsight. This course goes into much more depth than React Fundamentals, so if you have enough time (it’s over 5 hours long) you should learn a lot from it. While watching this course I found that we only need to watch 4 of these modules in order to gain a solid foundation of React.

One thing that I really like is Cory actively sought out the opinions of other professional developers on Twitter while producing this course. This has resulted in a more hardcore version of the course, which fully respects the importance of unit testing your code.

This course covers so many topics, this article may become my longest posts ever so I asked whether I should split it out into a series:

Because of this I have split this into a blog series, and this is Part 1.
You can also read:

Part 2 – Environment Setup

Part 3 – React Component Approaches

Part 4 – Initial App Structure

Part 5 – Intro to Redux

Part 6 – Actions, Stores and Reducers

Part 7 – Connecting React to Redux

Part 8 – Redux Flow

Part 9 – Async in Redux

Part 10 – Async Writes in Redux

Part 11 – Async Status and Error Handling

Part 12 – Testing React

Part 13 – Testing Redux

Part 14 – Production Build

About your Reviewer

Your reviewer is someone who has had at least a couple of false starts with React JS. There are aspects of it that greatly appeal to me and other aspects to it that have disgusted me!

I strongly believe that in software engineering less is more, and that the majority of developers benefit greatly from focusing on mastering the JavaScript language rather chasing new frameworks. I prefer small libraries to frameworks. It’s often said “React is not a framework, it’s just a library” but when I look at React, it seems more like a framework than a library.

When I see developers throwing frameworks at problems rather than thinking of a good minimal, high performance, and testable design, I am rather unimpressed.

That said writing sophisticated single page apps (SPA) in JavaScript has never been easy, without a framework it is harder still, and there is always the danger of the team creating its own poor mans framework as it develops the SPA.

So I have started looking at frameworks again, starting with Angular 2.

This is the perfect time to take a fresh look at React and what it and Redux offers the modern JavaScript developer.

Intro

The course introduction is available on You Tube and this is a 90 second sales pitch as to why you might be interested in watching this course.

Course Outline

Cory introduces each of the modules that we will be watching in this course. He also highlights which courses feature demos in case you just want to follow along with them.

Who is this course for?

As I said earlier, you need to already know the basics of React. Cory recommends watching the following 4 modules of his Building Applications with React and Flux course:

  • React Core Concepts
  • React: Creating Components Introduction
  • React Lifecycle
  • React Composition

He also recommends that you watch his module on Flux although it is not required.

You don’t need to know ES6/ES2015 already. These are different names for the latest JavaScript specification, and although the correct official term is ”
ECMAScript® 2015 Language Specification”, from here on we’ll be using the shorthand term for it, ES6.

How is this Course Different from the React and Flux course?

Cory explains that this is a more advanced course and runs through the technology we’ll be covering and where it is different from the technology covered in his previous course.

We’ll be building the same Pluralsight Admin application that was built in the previous course, but with some enhancements and tweaks.

Why Redux?

Strawberry Ice Cream Cone
Strawberry Ice Cream Cone, by TheCulinaryGeek from Chicago, CC By 2.0

 

Cory likens the different flavors of Flux to an Ice Cream shop

Flux original is Vanilla flavor, but Redux has become the de-facto standard.

Cory describes 7 things that make Redux special:

  • One Store
  • Reduced Boilerplate
  • Isomorphic/Universal Friendly
  • Immutable Store
  • Hot Reloading
  • Time-travel debugging
  • Small

Cory also discusses where Redux sits on the Boilerplate vs Magic continuum.

I haven’t yet met Dan Abramov since he came to London, but I interviewed him for Outlier Developer in March, and was very impressed with his insightful answers.

Continue to Part 2 – Environment Setup

One thought on “Building Applications with React and Redux in ES6

  1. Pingback: React Native | Zombie Code Kill

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s