This repository contains the solutions for the challenges given by Advent of Code 2022.
The challenges are developed in Python 3.10
My main self-imposed goal for this challenge is to develop "production-grade" code, which implies:
- No single-letter/obscure naming. Each variable, function, class must have a name as clear as possible
- No "clever" one-liners. Instructions are split to keep the code readable. Avoid eccessive operations all executed together.
- In general, code readability is a must, from keeping a consistent formatting to split the solutions into multiple files if needed.
- Avoid hard-coding, or at least magic numbers. Puzzle constants should all be decleared as variables. Input should be parsed separately from business logic.
- If the same logic is applied multiple times, an utility function should be extracted
- Follow SOLID principles when possible