DEV Community

Yonatan Karp-Rudin
Yonatan Karp-Rudin

Posted on • Originally published at yonatankarp.com on

1

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)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more