One of the side effects of working with redux is that it forces you to think about your application in terms of state instead of thinking in terms of user workflow. While state might seem like an implementation detail, with experience it becomes more a part of the design process, allowing us to accurately predict "sad path" situations that may arise when the app is in a particular state.

I've been working on a large-scale React-Redux project for several months now. React is not a framework and so it doesn't enforce a particular way of grouping related code or related files, code style or organization. I've been thinking about what it means to provide forward-maintainability in this type of codebase and how we can make our code understandable to other human beings.

React is much more than a templating language, and the breadth of ways in which components can be reused greatly exceeds languages like Handlebars. Some of these patterns are more useful than others, however.

Cathy O'Neal, in Weapons of Math Destruction, describes how algorithms increasingly control our lives: the news we see, the jobs we might be hired or fired from, how prisoners are sentenced and granted parole, whether or not we qualify for a loan. Moreover, she makes the case convincingly that the bizarre results of algorithms gone awry disproportionately affect the lives of the poor and disadvantaged.

Immutability is a core concept of libraries like Redux, and has many advantages - not the least of which is that is easier to decide when a React component should update. The downside of immutability is that it's hard to do: familiar methods like .push modify arrays in place instead of producing and new ones, and even when trying to "think immutable" it's easy to mess up and modify and existing data structure.

Knowledge does not come from nothing. It can only come from reason, from experimentation, or from preexisting knowledge. Yet throughout the history of our civilisation, those in positions have power have claimed access to greater versions of knowledge, whether through divine revelation, or through being "like, really smart."