3 ms·
> you want to do the right thing, so you don't want to invent a solution yourself How is that the right thing? Over 90% of the time, the fastest, most maintai
by mike_hock 3y ago
> you want to do the right thing, so you don't want to invent a solution yourself
How is that the right thing?
Over 90% of the time, the fastest, most maintainable, and simplest solution is to do it yourself.
Yeah sure, there's a few horror stories out there of homegrown database engines that reinvent every wheel of RDBs the wrong way, have been unmaintained for 10 years and the original dev has left.
But those are the exception. The things you shouldn't invent yourself, you can count on one hand. And they're obvious.
The spam is only the first hurdle. You have to find a solution that doesn't suck. Evaluating whether it sucks would take at least 3x as long as writing it yourself, so you can only give it a cursory glance.
There's a chance it sucks in non-obvious ways that you're gonna find out over time, most likely in production, through a slow trickle of WTFs over the months as you work around increasingly weirder bug. There's of course a chance it's good. But you're gonna have to take the risk.
Then comes the maintenance phase. Of course it's gonna redesign its interface every month. Until it suddenly gets abandoned and starts to bitrot. Eventually it stops working when you upgrade something unrelated.
Then you're not only back to square one but have to find a replacement fast because now you're relying on it.
The stuff you wrote yourself 5 years ago, on the other hand, still works exactly like it did when you wrote it with minimal changes.
- ilyt 3y ago> Over 90% of the time, the fastest, most maintainable, and simplest solution is to do it yourself. That's almost never the case. You'd be near-always putting it together with ready made libs or services.
- mike_hock 3y agoYeah. Fundamental libraries at the right level of abstraction, most of which you're probably already familiar with. Those are the obvious things you shouldn't write yourself.