Code Smell 06 - Too Clever Programmer
Code is difficult to read, and tricky with names without semantics. Sometimes using language's accidental complexity.
TL;DR: Don't pretend you are too smart. Clean code asks for readability and simplicity.
Problems
Readability
Maintainability
Code Quality
Premature Optimization
Solutions
Refactor the code
Use better names
Examples
- Optimized loops
Exceptions
- Optimized code for low-level operations.
Sample Code
Wrong
function primeFactors(n) {
var f = [], i = 0, d = 2;
for (i = 0; n >= 2; ) {
if(n % d == 0) {
f[i++]=(d);
n /= d;
}
else{
d++;
}
}
return f;
}
Right
function primeFactors(numberToFactor) {
var factors = [],
divisor = 2,
remainder = numberToFactor;
while(remainder>=2) {
if(remainder % divisor === 0) {
factors.push(divisor);
remainder = remainder/ divisor;
}
else{
divisor++;
}
}
return factors;
}
Detection
Automatic detection is possible in some languages. Watch some warnings related to complexity, bad names, post-increment variables, etc.
Relations
Refactorings
Also Known as
- Obfuscator
Conclusion
Too clever developers write cryptic code to brag. Smart developers write clean code. Clear beats clever.
Tags
- Declarative
More Info
Credits
Photo by NeONBRAND on Unsplash
Programming can be fun, so can cryptography; however they should not be combined.
Kreitzberg & Shneiderman
This article is part of the CodeSmell Series.