So the realization that I had due to Tyler. He made a comment about how he doesn’t really write big websites or all in one bundles but rather uses and writes smaller services that talk to each other.
I had been thinking about how I wanted to integrate with DailyMile but couldn’t decide on how I wanted to pull down the data. After hearing how Tyler works I decided I’d just write a simple daemon in Lisp that could pull down my data and store it in the PostgreSQL database I planned on using. This made it far simpler to (start) writing both sides.
I am currently spending time on the daemon and how/what I want to store the entries in the database (so I don’t have to request them every time) the benefits of being able to focus solely on the communication between my daemon and the DailyMile service have made it so I am not solving problems like how to display the information or how to aggregate it or the features I’ll have in the web side of the app.
Once I have it pulling down and saving the basics of the entries consistently I can start into the web site side of things, which since it only has to read from the database not pull down data from a foreign server, it will simplify the site and I can focus on the features and processing the data.
Sure there are still plenty of problems to solve in this space and with what I want to do, but separation of concerns like this results in easier to maintain, extend and reuse services.