4 ms·
There are very few axioms of software development that are applicable everywhere. "Never rewrite" is one of the few that is valid in all situations.
by Illniyar 8y ago
There are very few axioms of software development that are applicable everywhere. "Never rewrite" is one of the few that is valid in all situations.
- petepete 8y ago"except when the original version used MongoDB as a relational store and a home-grown web framework that was a poor mans' Django/Rails (except slower, undocumented and incredibly resource hungry) where moving bit by bit to PostgreSQL wasn't an option, then totally rewrite it properly"
- adrianhel 8y agoBetter yet: Stick with Mongo, create regression tests, switch out or simplify the framework and add integration testing. It is often viable to take the meat of a system and place it in a new framework with some alterations. And for the performance issue, just identify what causes it by timing parts of your code. I'm guessing home grown database wrapper.
- hawski 8y agoIf you never rewrite someone will and they will take your place.
- hombre_fatal 8y agoRewriting just has a cost, a particularly big one. That just means that there are cases that justify the cost, and they happen to me more extreme than the reasons we generally like to rewrite things.
- sethammons 8y agoAbsolutes should be avoided, always. Everything in moderation, even moderation.
- RossBencina 8y agoA closely allied idea to "never rewrite" is "you can always refactor shit into gold." For the first ten years after reading the Refactoring book I believed the second claim was true. Don't get me wrong, I think you can make great improvements to a code base with Refactoring. But sometimes a re-design really is needed. Eric Normand addresses one facet of this by saying "you can't refactor Aristotle to Newton": https://lispcast.com/building-composable-abstractions/ https://lispcast.com/building-composable-abstractions/