What’s Redux Anyway?

My team at iModules has been using React for a while now, somewhere around 12-18 months. The team started using React with Flux, which, while useful, came with a whole set of issues and made it incredibly confusing to get up-and-running for new team members. We tend to swap members between teams about once a quarter, which necessitates paradigms that are relatively easy to pick up and very efficient once learnt.

Since I joined the team about five months ago, we started using Redux on a new project. (This shift was mostly at my urging, because I love everything FRP, and I’m thankful the team was receptive to it.) In that time, we’ve learned a lot and have been absolutely thrilled with the paradigm that Redux introduces to front-end development with React. While it can have a brain-bending learning curve for people new to functional programming concepts, we’ve found most people can become comfortable with the concepts within a week and start pumping out features without much slowdown.

Last month I did a talk at a dev Lunch ‘n’ Learn series on React. By this point various team members had covered different aspects of React and I was getting into the meat of Redux. I tried to cover Redux generally, and some basic functional concepts, but I did get into showing some implementation as well as some cool packages to use with Redux. I recorded the presentation and, apart from an echo-chamber of a room and an interlude in the middle where people decided they needed a second-helping of our delicious lunch from Sichuan Dynasty, I thought it went pretty well. It was the first talk I’d ever done, and I have lots of stuff to improve, but I was happy with it for a first attempt.

As an aside: Our team was used to Gulp + Browserify as it had been used it on a previous project, and feature priorities kept us from implementing HMR like we’d wanted, so we hadn’t yet fully realized the benefits of the Redux dev flow. However, recently I’ve had a little free time to switch over to Webpack and enable HMR for our entire project, which has been a wonderful experience.

I’ve thrown the project I used in the talk up on my GitHub and the slides are available at Slides.com. Any comments, questions, or corrections are definitely welcome.