Beginners are afraid to remove code. And many seniors too.
TL;DR: Don't leave commented code. Remove it.
Problems
Readability
Dead Code
Lack of Coverage
Lack of Source Version Control
Solutions
Remove commented code
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
Code Smell 75 - Comments Inside a Method
Maxi Contieri ・ Jun 5 '21 ・ 2 min read
Code Smell 05 - Comment Abusers
Maxi Contieri ・ Oct 24 '20 ・ 2 min read
Refactorings
Refactoring 005 - Replace Comment with Function Name
Maxi Contieri ・ Jun 7 ・ 1 min read
Credits
Photo by maxim bober on Unsplash
Don’t document the problem, fix it.
Atli Björgvin Oddsson
Software Engineering Great Quotes
Maxi Contieri ・ Dec 28 '20 ・ 13 min read
This article is part of the CodeSmell Series.
Discussion (1)
At my current company, which is using C#, they still have some files with commented out Visual Basic code. They changed languages years ago.