At present moment, my desktop application operates purely on file names. That is, it parses file names and then reasons about the data contained therein. However, in the future, I see that there is a great possibility that I will bring in libraries which are capable of parsing file data, to improve my application for user experience.
By "at present moment", I mean that my app will likely operate on filenames for the first 3-6 months of its existence. I could write the code in a way where the app's functionality simply calls functions that operate on pieces of data within the filename directly. However, considering the possibility of operating on other data such as data from the filesystem, data within the file, etc... in the distant future, I have decided to create complex data structures now and have began building a simple database system, with most fields being None/NULL
for the time being, but I'm storing these structures both on-disk and in-memory when the app loads.
Please note that performance is a top concern for me. At this time, I have a series of buttons in the UI and when pressed, actions occur at click-time. However, I've thought about beginning to have those actions occur asynchronously in the background while the user is using the application, and have the results of those actions stored (it won't take a ton of space).
Am I over-engineering this or are these wise design decisions to make at this time?