When we refactor code how can we be confident that we don't break anything?
3 of the most important things that allow us to refactor fearlessly are:
- Side effect free - or pure - expressions
- Statically typed expressions
- Tests
In this article we will solely focus on the aspect of side effects and strictly speaking on how to identify them. Being able to identify side effects in our programs clearly is the precondition for eliminating them.