This repository contains the solutions for the challenges found under the Advent of Code 2022 project.
Initially, I wanted to do software engineering instead of purely programming to solve the tasks. It turned out that the former approach took too much of my time, so on day 3 I decided to focus on speed rather than on maintainability.
Software Engineering
Software Engineering can be defined as programming in the function of time.
Key attributes:
- Scalability
- Testing
- Gracious error handling
- Modularity
- Extensibility
- Readibility
Programming
- The goal is mostly solving a task quickly without considering the lifespan of the code.
- The points listed under Software Engineering are not as important when one just simply programs.
You can read more about the definitions in the book Software Engineering @ Google .
- OpenJDK 17.0.5
- Apache Maven 3.8.6
In order to calculate the results, run the command below:
mvn exec:java
Run the below command to run the tests:
mvn test