TL;DR: Avoid using magic numbers without explanation. Their source is unknown, and we fear changing them.
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
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)