paint-brush
Code Smell 236 - What to Do With Excessively Long Code Linesby@mcsee
366 reads
366 reads

Code Smell 236 - What to Do With Excessively Long Code Lines

by Maximiliano Contieri3mJanuary 4th, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Unwrapped code refers to the absence of line breaks or appropriate indentation. It yields excessively long lines of code that extend beyond the typical width of a code editor or mobile screen. People read the code on small devices so line wrapping is critical. When developers find it challenging to understand the structure and structure of code, they may find it hard to understand.

Company Mentioned

Mention Thumbnail
featured image - Code Smell 236 - What to Do With Excessively Long Code Lines
Maximiliano Contieri HackerNoon profile picture

Formatting plays a crucial role in creating code that is not only functional but also readable and maintainable. In this article, I will shed light on the code smell associated with neglecting proper line wrapping and explore why it's considered bad practice, too long, isn't it?


TL;DR: Extract and wrap your code

Problems

  • Hard to read code (especially in small devices)
  • Demeter's Law violation

Solutions

  1. Wrap the code to at most 75 characters.


  2. Break and concatenate long strings. Compilers optimize them. Thinking there's a speed penalty is a premature optimization mistake.


  3. Don't use Abbreviations.

Context

Unwrapped code formatting refers to the absence of line breaks or appropriate indentation. It yields excessively long lines of code that extend beyond the typical width of a code editor or mobile screen.


While writing my last book, people read the code on small devices so line wrapping is critical.

Sample Code

Wrong

struct ExtraterrestrialSignal { signal_frequency: f64, signal_strength: f64, signal_duration: f64, }

fn perform_signal_processing_and_analysis(extraterrestrial_signal: &ExtraterrestrialSignal,
) {
    println!(
        "Extraterrestrial Signal processed - Frequency: {} Hz, Strength: {}, Duration: {} seconds", extraterrestrial_signal.signal_frequency,  extraterrestrial_signal.signal_strength, extraterrestrial_signal.signal_duration);

    if extraterrestrial_signal.signal_strength > 0.8 && extraterrestrial_signal.signal_duration > 10.0
    {
        println!("Potential Extraterrestrial Signal of interest!");
    } else {
        println!("Signal does not meet criteria for further investigation.");
    }
}

Right

struct ExtraterrestrialSignal {
    signal_frequency: f64,
    signal_strength: f64,
    signal_duration: f64,
}

fn perform_signal_processing_and_analysis(
    extraterrestrial_signal: &ExtraterrestrialSignal,
) {
    println!(
        "Extraterrestrial Signal processed" + 
          "- Frequency: {} Hz, Strength: {}, Duration: {} seconds",
        extraterrestrial_signal.signal_frequency,
        extraterrestrial_signal.signal_strength,
        extraterrestrial_signal.signal_duration
    );

    if extraterrestrial_signal.signal_strength > 0.8
        && extraterrestrial_signal.signal_duration > 10.0
    {
        println!("Potential Extraterrestrial" 
            + " Signal of interest!");
    } else {
        println!("Signal does not meet criteria" 
            + " for further investigation.");
    }
}

Detection

[X] Automatic


This is a formatting and syntactic smell

Tags

  • Formatting

Level

[X] Beginner

AI Assistants

AI assistants sometimes bring short code and not real production code.


You can use the assistants to wrap and format your code.

Conclusion

Ensuring readability is consistently paramount, with various facets warranting consideration. When lines of code are excessively long, developers may find it challenging to understand the structure and flow of the code.

Relations

https://blog.devgenius.io/code-smell-33-abbreviations-ba5149c93a68


https://blog.devgenius.io/code-smell-48-code-without-standards-60c9e0905627


https://levelup.gitconnected.com/code-smell-164-mixed-indentations-a328947b9a7e


https://levelup.gitconnected.com/code-smell-211-tab-over-spaces-66f20522727c

More Info

Clean Code Cookbook

Disclaimer

Code Smells are my opinion.

Credits

Photo by Olesya Yemets on Unsplash


The objective of cleaning is not just to clean, but to feel happiness living within that environment.

Marie Kondo


This article is part of the CodeSmell Series.