https://blog.codacy.com/an-in-depth-explanation-of-code-complexity/
I think a lot of people don't know these simple things:
- key to reducing source-code complexity = reducing number of possible cases
- reduce number of cases to think about
- reduce number of 'what-can-go-wrong?' scenarios
- number-of-cases are usually multiplicative between function-calls