Code Smell 151 - Commented Code

Photo by maxim bober on Unsplash

Code Smell 151 - Commented Code

Beginners are afraid to remove code. And many seniors too.

Maxi Contieri
·Jul 22, 2022·

2 min read

Subscribe to my newsletter and never miss my upcoming articles

Play this article

Table of contents

  • Problems
  • Solutions
  • Context
  • Sample Code
  • Detection
  • Tags
  • Conclusion
  • Relations
  • Refactorings
  • Credits

TL;DR: Don't leave commented code. Remove it.

Problems

  • Readability

  • Dead Code

  • Lack of Coverage

  • Lack of Source Version Control

Solutions

  1. Remove commented code

  2. Implement Source Version Control

Context

When debugging code we tend to comment on code to see what happens.

As a final step, after all our tests pass, we must remove them following clean code practices.

Sample Code

Wrong

function arabicToRoman(num) {
  var decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
  var roman = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'];
  var result = '';

  for(var i = 0; i < decimal.length; i++) {
    // print(i)
    while(num >= decimal[i]) {
      result += roman[i];
      num -= decimal[i];
    }    
  }
  // if (result > 0 return ' ' += result)

 return result;
}

Right

function arabicToRoman(arabicNumber) {
  var decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
  var roman = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'];
  var romanString = '';

  for(var i = 0; i < decimal.length; i++) {
    while(arabicNumber >= decimal[i]) {
      romanString += roman[i];
      num -= decimal[i];
    }    
  }

 return romanString;
}

Detection

[X] Semi-Automatic

Some machine learning analyzers can detect or parse comments and guide as to remove them.

Tags

  • Comments

Conclusion

We need to remove all commented-out code.

Relations

Refactorings

Credits

Photo by maxim bober on Unsplash


Don’t document the problem, fix it.

Atli Björgvin Oddsson


This article is part of the CodeSmell Series.

 
Share this

Impressum

Technical Opinions are my own. I don't have the revealed truth.

Software Design is a creative activity. These are hints and not rigid rules.

I write on BackEnd Business Systems and OOP Design. My advice/experience might not suit other systems.

You can write me at info(at)maximilianocontieri.com