A Year of Commits and Pushes
Over a year ago I made the decision to publish the custom framework behind my personal website. There were a few reasons why I wanted to share the code, though the main driver was that I wanted to actively modernize my code base. And it worked. Since pushing my custom framework I've updated huge swaths, created a handful of independent packages, and even started building up a microservice framework that will be the building blocks of my sites moving forward.
So what has updated on my site? Nothing that visible. The speed has improved some and there are chunks of it broken into smaller dependencies that are easy to test and increment. Domain models have helped standardize the data access layer. Some patterns, like the cookie models, were overly complex and were ripped right out. Oh, and the front end now uses grunt to version and maintain external libraries, which is much better than having a fixed version of jQuery and the likes in my code base.
One of the bigger wins for pulling chunks out into dependencies was the profiler, pQp. This profiler was around in ye olden days and was only available as a .zip download from certain websites. Not only did I push it out over packagist/Github, it has been cleaned up to modern standards, has more features, and is unit tested. There's even a monolog handler that will send messages to the profiler. I'm also utilizing a mailing library, Archangel, and am moving towards using Aura.sql for database connections. All this means that my application takes up less lines of code and I'm making things that other developers can use.
Speaking of simplifying things, I'm also neck deep in creating a microservice framework that leans on Swagger for routing and validation. This is more than a little inspired from what I've seen in the Node.js world - being able to build an entire app with only a spec file and some lightweight controllers. Everything else is just configuration that can be derived from spec. So far I have one chunk of business logic, comments, running off of this, though I plan on using it for media metadata and geodata in the near future.
Since last November I've pushed 1200 commits, almost four a day, and have touched close to a dozen different codebases. The streak feature that Github recently dropped was a good motivator, forcing me to come back day after day and come up with some incremental change that I could push to maintain longevity, and when they dropped that I now just try to keep the squares green. Anyways, as hard as it's been to define, chunk out, and update these projects, I plan on keeping it up. There might be a few breaks for backpacking or for the new baby showing up in February, though I do hope to have another thousand-plus commits throughout 2017.