.css-df1pn7{display:block;width:16rem;}

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·

Subscribe to my newsletter and never miss my upcoming articles

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

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

Problems

• 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.

Conclusion

We need to remove all commented-out code.

Credits

Photo by maxim bober on Unsplash

Don’t document the problem, fix it.

Atli Björgvin Oddsson