Code difficult to read, tricky with names without semantic. 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
Code Smell 02 - Constants and Magic Numbers
Maxi Contieri ・ Oct 21 '20
Code Smell 20 - Premature Optimization
Maxi Contieri ・ Nov 8 '20
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
Software Engineering Great Quotes
Maxi Contieri ・ Dec 28 '20
This article is part of the CodeSmell Series.
How to Find the Stinky parts of your Code
Maxi Contieri ・ May 21 '21
Last update: 2021/06/08