I spent a great deal of thursday's time pondering how to confront the challenge. Not having much clarity on how it would develop, I decided to use an inside-out approach for I feel more comfortable with the methodology.
Given the time constraint and being more accustomed to its use, I went with implementing an ArrayList as the data structure for the in memory repository, with an intention to switch to something that would give a better performance when the project was more advanced.
In spite of some hinderance, I've found this sprint to be the most enjoyable. Learned a few things in the process.
I have noticed some design issues arise. Found complicated to invest time in doing research for some better performing data structure more fit for the repo. Linked Hash Map looked good, but refactoring what I already had to make good use of it would have been excessively time-consuming.
Been thinking on alternatives for the repository implementation too, for I find the current state to have an big deal of logic that would be better in a catalog first class collection.
To do:
- Better algorithms for repo iteration.
- Test parametrization.
- Formatter service to handle DTO presentation.
- Timeserver service to handle dates.
- Look for a better design pattern to handle the country especifications, tried to apply factory and strategy but felt like I was adding unnecesary complexity. Will look deeper into it.
- Sprint 4 features.