Kotlin Code Smell 1 - Constants and Magic Numbers

Photo by Dollar Gill on Unsplash

Kotlin Code Smell 1 - Constants and Magic Numbers

A method makes calculations with many numbers without describing their semantics

TL;DR: Avoid using magic numbers without explanation. Their source is unknown, and we fear changing them.


  • Coupling

  • Low testability

  • Low readability


  • Rename the constant with a meaningful and intention-revealing name.

  • Replace constants with parameters, allowing them to be mocked from the outside.

  • The constant definition should be separate from its usage.


  • Algorithms Hyper Parameters

Sample Code


fun energy(mass: Double) = (mass * 299792458).pow(2)


typealias MetersPerSeconds = Int

// Using a specific unit of measure to avoid another code smell
const val LIGHT_SPEED: MetersPerSeconds = 299792458

fun energy(mass: Double) = (mass * LIGHT_SPEED).pow(2)

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!

More Information