DEV Community

Cover image for Code Smell 115 - Return True
Maxi Contieri
Maxi Contieri

Posted on • Originally published at maximilianocontieri.com

Code Smell 115 - Return True

Booleans are natural code smells. Returning and casting them is sometimes a mistake

TL;DR: Don't return true or false. Be declarative.

Problems

  • Readability

  • Primitive Obsession

  • If/Else abuse

Solutions

  1. Return truth value in a declarative way

  2. Replace IF With polymorphism.

Context

Dealing with low-level abstractions, we usually return booleans.

When we create complex and mature software, we start to forget about this primitive obsession and care about real-world rules and identities.

Sample Code

Wrong

boolean isEven(int num){
     if(num%2 == 0){
       return true;
    } else {
       return false;}        
}
Enter fullscreen mode Exit fullscreen mode

Right

boolean isEven(int numberToCheck){
  //We decouple the what (to check for even or odd)
  //With how (the algorithm)
  return (numberToCheck % 2 == 0);     
}
Enter fullscreen mode Exit fullscreen mode

Detection

[X] Automatic

Many linters can check syntactic trees and look for explicit true/value returns

Tags

  • Primitive

Conclusion

Search on code libraries for return true statements and try to replace them when possible.

Relations

More Info

Credits

Photo by engin akyurt on Unsplash


The good news is: Anything is possible on your computer. The bad news is: Nothing is easy.

Ted Nelson


This article is part of the CodeSmell Series.

Discussion (1)

Collapse
bn_geek profile image
Mohcin Bounouara

Helpful points of view, thank you!