An all too common problem I’ve seen programmers make is to become afraid of changing their code.
They type it in quickly. It’s a bit muddled and probably a little messy.
Bugs and changes get requested right away as it is not doing what people expect it to do.
The original author and lots of those who follow, seek to make the most minimal changes they can. They are dainty to the code. They only do the littlest things in the hopes of improving it.
But the code is weak. It was fully thought out; it was poorly implemented.
It would save a lot of time to make rather bigger changes. Bold ones. Not to rewrite it, but rather to take what is there as a wide approximation to what should have been there instead.
Break it up into lots of functions.
Rename the variables and the function name.
Correct any variable overloading. Throw out redundant or unused variables.
Shift around the structure to be consistent, moving lines of code up or down the call stack.
All of those are effectively “nondestructive” refactoring. They will not change what the code is doing, but they will make it earlier to understand it.
Nondestructive refactors are too often avoided by programmers, but they are an essential tool in fixing weak codebases.
Once you’ve cleaned up the mess, and it is obvious what the code is doing, then you can decide how to make it do what it was supposed to do in the first place. But you need to know what is there first, in order to correctly change it.
If you avoid fixing the syntax, naming, inconsistencies, etc it will not save time, only delay your understanding of how to get the code to where it should be. A million little fixes will not necessarily converge on correct code. It can be endless.
No comments:
Post a Comment
Thanks for the Feedback!