Let it go….let it go…

I’ve not become a fan of Frozen I promise.

During the last few weeks, I’ve been reading a LOT of code. Mainly other people’s code, and something struck me.  There was a LOT of commented out code. And this code was checked in to version control too.

I may be approaching this from a simplistic point of view here, but I can’t fathom why people comment out code, and then check that code in.  I’ve heard a variety of reasons, some of them good, some of them, not so good.

But I think I’ve nailed it down to this. Fear!

There’s a fear that we may need the code again at some point in the future.

However I would counter that with the following. If it’s not needed right now, then why is it in the code base? And more importantly, why is it checked in?

Commented out code CAN be useful such as providing an example of using a complex API or such. However in this instance it was code that wasn’t going to be executed as the developer had found a better way of doing it.

So it begs the question, why is the code still there?

I can understand if we weren’t using version control, or if the server was flaky etc, but the servers are fairly robust these days, and besides there’s redundancies as well.  So again, why is it there?

I would say that we should be merciless with commented out code. I’ll confess that I am in code reviews. It not only distracts the developer maintaining the code, but also disrupts the flow of the code when you’re reading it too.

We shouldn’t be afraid of removing commented out code from projects.  That’s what version control is for.  If we need that code again, we can easily get to where the code existed before being removed.

Also, we shouldn’t be afraid of removing code that’s no longer in use!  I did exactly that a few weeks.  I was working on a legacy product, and there was a section in the project that I didn’t think was being executed.

I grepped for the class names, and found they weren’t being used anywhere else. Once I’d done that, I removed their entries in the Maven pom files and tried to compile.  It compiled fine without issue, and I tried to run the product, and that ran fine too.  So after that I removed the directories and their contents.  Repeated the build and execute steps and functionality wasn’t compromised.

Sometimes the best things we can do for our code, is to actually remove code. Whether it be commented out code, or code that’s never actually executed.



About welshboy2008

In my spare time, I read, listen to music, play my guitar among other stuff. I love to write computer programs too. In various languages. But mostly C# and Java. I'm currently learning: PHP, Javascript, XML, ASP.NET, Python, C and Assembler.

Posted on 09/05/2016, in Uncategorized. Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: