Skip to main content

When Do I Refactor?

When do I know it's time to refactor code?


Refactoring is different for every person but for me I follow these guidelines:
- If I don't know / understand the code, I don't refactor.  Period!
- Is the code broken?  If not then I generally don't refactor
- Can the code be made much simpler?  If the amount of code can be reduced by 2x and made cleaner / simpler then I may refactor.
- Can the existing code handle the new feature / bug fix?  If not then I may refactor.
- I will not refactor the code if I think I have a better way.  Better my be for me but not other developers.  I leave working code working.

Tests:
I never assume that tests for existing code:
-  Has complete code coverage (I've never seen this yet).  I've seen 100% coverage but not all combinations of logic or possible side effects of API changes, etc.
- That the tests are even correct.  The tests only test what the developer wanted to test, not what could / should happen.  Tests are never free from bugs just like the code that is being tested.  If there are x% of bugs for every 1,000 lines of code then the tests will also contain basically the same rate of bugs.

For these reasons, I never rely on tests for catch bugs when I refactoring code.  I need to fully understand the logic and intension of the code before I refactor.  Otherwise I'll just create additional bugs and duplicate failed logic in the new code.

For me, I try to make sure that my code is as solid, understandable and as simple as possible.  If code is not understandable then it's at rick of being churned by refactoring.

Comments

Popular posts from this blog

My Current Desktop and Happy Vining.

It's been a big switch when I quit my old procession (Software Engineer) and ventured into the unknown.  So this is my current desktop.   First it's a REAL desktop and not a computer screen. Second, I've had to learn a whole new set of tools.  You would think a pencil is just a pencil and a paint brush is just a paint brush, but noooooo, they are tools into you mind and that's what needs re-tooling. The tactual nature of these tools and operation as much more rewarding (and frustrating too) than typing code in an IDE.   That had it's incentive but that well went dry and life changes,  so I changed. The pleasure of creating colors (no RGB involved) ad hoc wise is interesting.  Getting the technique to merge them on paper is very tough.  You do not know what you're going to get, so you just have to go with it. I'm glad that I can do a lot of other things instead of Software, but I hope that others in my past procession work on other pa...

3rd Try is a Charm

I've been trying to draw / paint these barns for a couple of years but never felt or got them right.  This time I think they turned out right. So What went wrong before and what's right now with this drawing?  This time, the light was right.  It's coming from the upper right and the shadows just looked right.  The other thing is the corn field on the left had to "be in season", otherwise it's just a plowed field.  I had taken other photos from different angles but they never felt right.  This angle has the road, power lines, corn field, etc. all leading to the right.  The shadows on the lower right helps fill in that corner (don't forget about the corners!).  The last part is trying to draw (ink paint maybe) the trees in the background.  Not so easy when they are kind of a blob is green shades. So yeah, it's composition that is king.  Many times I just don't see it until the drawing / painting is finished and when it's right it feels goo...

A Trip Abroad

 Just back from our trip abroad as Asheville continues to recover from the hurricane.  This trip has been planned for a long time and we almost didn't make it because our dog sitting business will be closed for a while. But make it we did and now we are back. We love Amsterdam.  What a fun place to visit.  So many things to too and do there.  The weather was not the best but it did not have an impact on our visit.  Just bundle up. Got some quick painting in while on the boat (i.e., Viking) as we moved from port to port.  This painting is of a garden at a heritage site of windmills.  I thought it looked nice. Nice time on the trip to de-stress from what was happing back home.  We were fine back home but not everything is well with many others.