It felt like a lot of busywork, but it did prevent some classes of bugs.
It felt like a lot of busywork, but it did prevent some classes of bugs.
Across the entire codebase, we discovered an entire class of bugs that only never cause any issues because all the important rows in all the important tables had Id 1 (e.g. Currency 1 was USD and Country 1 was USA) - so in a few places where the ints got mixed up, the correct row was still accidentally looked up in the wrong table).
The introduction of the additional types everywhere did turn into massive headaches based around dependency management and versioning.
So overall, I was personally disappointed in the results, but nevertheless happy to work with less "icky" feeling code.
It's very easy to mentally shrug and move on, but more often than not it comes back to bite you; maybe it's a code path that's rarely triggered, e.g.