3 ms·
Rewriting throws away years of accumulated edge cases handling. Suddenly the thing doesn't work because one particular model of printer needs an undocumented co
by eternityforest 3y ago
Rewriting throws away years of accumulated edge cases handling. Suddenly the thing doesn't work because one particular model of printer needs an undocumented command to enable some feature, or users are inputting bad data because you forgot the checks you accumulated...
Seems not ideal for end users, unless you're working with microservices or something with well defined specifications that people are actually paying attention to.
- Zetice 3y agoDepends on the field, but what I work on generally evolves so much over time that by the time I'm ready for a rewrite, the "edge cases" I had to account for when I started are either solved, partially solved, or can be isolated into some tiny part of the codebase that could be ported over from the previous code. Beside, "rewrite" here doesn't mean "new repo, new project, new everything" it means reimplementation, usually based on the lessons learned from the previous implementation, and that does include edge case handling, as well as expanded functionality to "underwrite" or justify the effort spent on the rewrite.
- vendiddy 3y agoRewriting does not need to be an all-or-nothing endeavor. If you design your app as a collection of subsystems, it's sometimes faster to destroy and rebuild one of them than it is to refactor.