DEV Community

Yonatan Karp-Rudin
Yonatan Karp-Rudin

Posted on • Originally published at yonatankarp.com on

Kotlin Code Smell 5 - Too Clever For Your own Good

TL;DR: Don't pretend you are too smart. Clean code requires readability and simplicity.

Problems

  • Readability

  • Maintainability

  • Code quality

  • Premature optimization

Solutions

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
}
Enter fullscreen mode Exit fullscreen mode

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
}
Enter fullscreen mode Exit fullscreen mode

Conclusion

Developers who are too clever for their own good write cryptic code to brag. Smart developers write clean code. Clear beats clever!


Stay updated with my latest thoughts and ideas by registering for my newsletter. Connect with me on LinkedIn or Twitter. Let's stay connected and keep the conversation going!


Credits

Top comments (0)