Has React and Redux helped me become a better dev?

This thread is a continuation of two other posts I invite you to read:

#1 – The problem with abstractions
#2 – Separation of concerns(SoC)

Redux is conceived on some functional programming concepts, such as immutability, and pure functions. We manipulate the State through these functions called Reducers, who have this signature:

(currentState, action) => newState

Watching the signature above closely, we notice we don’t depend on Redux to develop our unity tests, since we only have to call a reducer passing an object to simulate the current State and another one representing the action.

The same goes for other tests that must be pure functions as well. There’s an entire session designed for tests in the Redux documentation that’s definitely worth checking.

The functional programming concepts brought by Redux help us to expand our knowledge and the way we think logic. It’s also an entry point to this paradigm.

Redux and React are based on a unidirectional flux, which gives us a much stronger control over our app. And the best part is that this control comes without any difficulty when we need to integrate our app with a new lib.

React induces us to develop a component-oriented app, encouraging us to reuse code and create a modular app. Not only that, we can also rely on countless tools that improve our workflow such as React Hot Loader and React Storybook.

Wrapping it all up, these two technologies teach us how to think our apps in a modular way, inducing us to properly identify and delegate responsibilities in an intuitive manner. The simplicity to work with components brought by React leads us to divide them into small pieces, which stimulates us to reuse code. The way each lib has its own role to be played on our code teach us how to develop independent apps. The conclusion is that both React and Redux are a superb addition not only for me but for all of us devs.