DEV Community

Yonatan Karp-Rudin
Yonatan Karp-Rudin

Posted on • Originally published at yonatankarp.com on

1 1

Kotlin Code Smell 1 - Constants and Magic Numbers

382byvsz5zmnq11ww9ar.png

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

Problems

  • Coupling

  • Low testability

  • Low readability

Solutions

  • 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.

Examples

  • Algorithms Hyper Parameters

Sample Code

Wrong

fun energy(mass: Double) = (mass * 299792458).pow(2)
Enter fullscreen mode Exit fullscreen mode

Right

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

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

Credits

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS Security LIVE!

Hosted by security experts, AWS Security LIVE! showcases AWS Partners tackling real-world security challenges. Join live and get your security questions answered.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️