Code Smell 118 - Return False
Checking for a boolean condition to return a boolean value is awkward

TL;DR: Don't return explicit booleans. Most boolean usages are code smells.
Problems
Declarativeness
Ninja Code
Implementative solutions
Solutions
Return a boolean proposition instead of checking a negation.
Answer must be a business logic formula, not an algorithm.
Context
When dealing with boolean formulas, it is more readable to show a business boolean formula than introduce a negated IF clause.
Programmers tend to return accidental implementative solutions instead of real business rules.
Sample Code
Wrong
function canWeMoveOn() {
if (work.hasPendingTasks())
return false;
else
return true;
}
Right
function canWeMoveOn() {
return !work.hasPendingTasks();
}
Detection
[X] Automatic
Based on syntax trees, we can safely refactor the code.
Tags
- Boolean
Conclusion
Beware of returning booleans.
After the return, you will need an If statement which is also a code smell.
Relations
More Info
Credits
Photo by Morgan Housel on Unsplash
Thanks to Nico K. for this suggestion.
It's not at all important to get it right the first time. It's vitally important to get it right the last time.
Andrew Hunt
This article is part of the CodeSmell Series.
About the author
I’m a senior software engineer loving clean code, and declarative designs. S.O.L.I.D. and agile methodologies fan.
Comments
Join the discussionNo comments yet. Be the first to comment.
Code Smells
In this series, we will see several symptoms and situations that make us doubt the quality of our developments. We will present possible solutions. Most are just clues. They are no hard rules.





