See: https://adventofcode.com/2020
- Finish the daily exercises in JavaScript
- Apply a declarative style as much as possible (escape hatches allowed)
- Decompose into small, testable functions
- Extensively test the implementation, preferably using Test-Driven Development (red, green, refactor)
- Prefer functions and expressions over statements and statefulness
- Fall back to a more imperative style if we run into JavaScript's limitations (recursion depth, etc.) or declarativity is too inconvenient for current or future puzzles
- Prefer
const
overlet
(no re-assignability) - Although more declarative, the use of the comma operator is discouraged as the resulting variable scoping is problematic