I think it’s pretty safe to say at this point that the vast majority of React code bases that need state management are using Redux. One of the things people like about Redux (yours truly included), is the testing story is great. Because reducers don’t allow mutating state, you’ll get the same result with the same input every time (yay functional paradigms!). But then there’s testing actions…
Remember when I posted about losing weight a few years ago? Remember when I posted a few disclaimers during that post? I’m feeling pretty good about those disclaimers right now because I was wrong about a lot of the things in that post. The good news is I’m down 55 more lbs and I have learned a lot since then.
Every developer has an “origin story”, the story of how they got into this crazy career. I’m always interested in hearing how people find their way into software development as it tells me a little about where their passions lie. Did you come from an artistic side? Did you come from the business realm? Have you been programming since you could type? Here’s my origin story.
I heard something interesting in an audiobook I was listening to the other day that gave me pause. It was in regards to how creativity can be stifled in group settings. Here was the scenario (paraphrased):
Let’s say you have several people in a room with a task of coming up with some creative idea. Some are considered fairly creative but are also quiet. The others aren’t that creative but are fairly loud and assertive. Chances are, the ideas that will come out of the group will be the less creative ideas from the more loud and assertive members of the group.
There are many factors that can sway the result (e.g. not all quiet people are pushovers, not all loud people try to bulldoze others, etc) but having experienced both sides of this coin, I think the general case remains likely.
That said, neither I or the book are advocating to never collaborate at work. I think there is strength in both approaches. While I like the idea of going off by myself to be creative or learn something, I know that by testing the resulting ideas against a group setting, I can get those ideas validated and possibly enhanced.
Really it comes down to: Like most things in life, if you do too much of one thing, you’re probably going to get suboptimal results.
I ran into an interesting problem a few weeks ago at work. I was working on a stand-alone widget/directive that had the following requirements: