Things change over time. They evolve, mutate and regress throughout once life cycle. Today I want to talk about keeping track of those changes, by comparing two most common techniques: state objects and history.
Choosing appropriate data storage is one of the first and most important decisions you have to face once you've started implementing an application (at least in web or mobile world). There are lots of possibilities out there, SQL and NoSQL, documents and objects and graphs and tables and whatnot. But I want to talk about those cases, when a fully-featured database for storing your data may be either not enough or too much.
Every programmer instantly measures quality of code, whether it is his (her/their?) own masterpiece, or some crap written by some other guy. And there are lots of metrics defined by smart people out there, that help you in this (cohesion, code coverage, WTFs/minute). Well, I‘m no exception, and just recently I’ve started to think about what am I paying attention to in the first place.