It’s just a tinsy bit of technical debt. How bad could it be?
throws it on the giant pile
Product: deletes pile
At this moment, I am staring at a 200-line block of postgresql that has about 40
JOIN
clauses. It is not trivially or realistically debugable, testable, or extensible by anyone, including the people who wrote it (and no, I didn’t write this shitshow). There are basically zero nuanced tests around it, despite the fact that that’s a banner I’ve carried in a pretty militant fashion since starting at this place about 2.5 years ago, meaning that I trust this baroque confluence of relational db logic about as far as I can throw my car. It was done this way because “we’ll have time to go back and optimize it later (oh, sweet summer child)”.I’m slowly going insane.
Oh, I was fearing we worked together, so I just went to check one of my workplace’s megaviews. But no, it’s 448 lines.
I wrote its first version a few years ago, with less than 100 lines, then I rewrote it with common subqueries so it could be actually maintained. It was much larger by that point. Later I removed some of the ambiguous (and subtly bugged) subqueries and rewrite it to use only about half of them. Looks like I need to do something about it again.
My consolation is that I’m not the one maintaining it.
I’m paid a salary, not hourly.
Don’t kill yourself to over engineer code that you’ll end tossing.
People try to be overachievers by exceeding expectations and then are often late or delivering a broken product.
It’s hard to tell perfectionists not to be perfectionists though.