DEV Community

Cover image for Code Smell 162 - Too Many Parentheses
Maxi Contieri
Maxi Contieri

Posted on • Originally published at maximilianocontieri.com

Code Smell 162 - Too Many Parentheses

Parentheses are free of charge. Aren't they?

TL;DR: Use as few parentheses as possible.

Problems

  • Readability

  • Syntactic complexity

Solutions

  1. Remove all not necessary parentheses

Context

We read code from left to right (at least in western culture).

Parentheses often break this flow, adding cognitive complexity

Sample Code

Wrong


schwarzschild = ((((2 * GRAVITATION_CONSTANT)) * mass) / ((LIGHT_SPEED ** 2)))

Enter fullscreen mode Exit fullscreen mode

Right


schwarzschild = (2 * GRAVITATION_CONSTANT * mass) / (LIGHT_SPEED ** 2)

Enter fullscreen mode Exit fullscreen mode

Detection

[X] Automatic

This is a fully automated code smell.

It is based on syntax trees.

Many tools detect it.

Exceptions

On some complex formulas, we can add extra parenthesis for terms readability.

Tags

  • Readability

  • Bloaters

Relations

Conclusion

We write code once and read it too many times.

Readability is king.

Disclaimer

Code Smells are just my opinion.

Credits

Photo by Nick Fewings on Unsplash


If someone claims to have the perfect programming language, he is either a fool or a salesman or both.

Bjarne Stroustrup


This article is part of the CodeSmell Series.

Top comments (3)

Collapse
 
macielti profile image
Bruno do Nascimento Maciel

You should checkout Clojure.

Collapse
 
ervin_szilagyi profile image
Ervin Szilagyi

A minor correction,

I assume that the example wants to implement the Schwarzschild radius. Since this post is tagged with Javascript, ^ operator represents the XOR operation, not the "exponentiation" or "power". The would be ** operator (starting of ES2016).

Collapse
 
mcsee profile image
Maxi Contieri

Nice !

Thank you. I fixed it!