Kotlin Code Smell 5 - Too Clever For Your Own Good
Clarity Over Cleverness: The Importance of Writing Understandable Code
Play this article
TL;DR: Don't pretend you are too smart. Clean code requires 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.
1-liner code functions
Sample Code
Wrong
fun primeFactors(n: Int): ArrayList<Int> {
val f = ArrayList<Int>()
var d = 2
var nn = n
while (nn >= 2) {
if (nn % d == 0) {
f.add(d)
nn /= d
} else {
d++
}
}
return f
}
Right
fun primeFactors(numberToFactor: Int): ArrayList<Int> {
val factors = ArrayList<Int>()
var divisor = 2
var remainder = numberToFactor
while (remainder >= 2) {
if (remainder % divisor == 0) {
factors.add(divisor)
remainder /= divisor
} else {
divisor++
}
}
return factors
}
Conclusion
Developers who are too clever for their own good write cryptic code to brag. Smart developers write clean code. Clear beats clever!