Code Smell 152 - Logical Comment
Temporary hacks might be permanent
TL;DR: Don't change code semantics to skip code.
Problems
Readability
Non-Intention Revealing
Solutions
If you need a temporary hack, make it explicit
Rely on your source control system
Context
Changing code with a temporary hack is a very bad developer practice.
We might forget some temporary solutions and leave them forever.
Sample Code
Wrong
if (cart.items() > 11 && user.isRetail()) { doStuff(); } doMore(); // Production code // the false acts to temporary skip the if condition if (false && cart.items() > 11 && user.isRetail()) { doStuff(); } doMore(); if (true || cart.items() > 11 && user.isRetail()) { // Same hack to force the condition
Right
if (cart.items() > 11 && user.isRetail()) { doStuff(); } doMore(); // Production code // Either if we need to force or skip the condition // we can do it with a covering test forcing // real world scenario and not the code testLargeCartItems() {} testUserIsRetail() {}
Detection
[X] Semi-Automatic
Some linters might warn us of strange behavior.
Tags
- Comments
Conclusion
Separation of concerns is extremely important in our profession.
Business logic and hacks should always be apart.
Relations

Code Smell 151 - Commented Code
Maxi Contieri ・ Jul 22 '22
Credits
Photo by Belinda Fewings on Unsplash
Thanks @Ramiro Rela for this tip
You might not think that programmers are artists, but programming is an extremely creative profession. It's logic-based creativity.
John Romero

Software Engineering Great Quotes
Maxi Contieri ・ Dec 28 '20
This article is part of the CodeSmell Series.
Top comments (0)