Code Smell 156 — Implicit Else
We learn if/else on our first programming day. Then we forget the else
We learn if/else on our first programming day. Then we forget the else
TL;DR: Be explicit. Even with Else.
Problems
Readability
Cognitive Load
Unforeseen conditions
Solutions
Write the explicit else
Context
If we early return on an IF sentence we can omit the else part.
Afterward, we Remove the IF and use polymorphism.
That is when we miss the real cases.
Sample Code
Wrong
function carBrandImplicit(model) {
if (model === 'A4') {
return 'audi';
}
return 'Mercedes-Benz';
}
Right
function carBrandExplicit(model) {
if (model === 'A4') {
return 'audi';
}
if (model === 'AMG') {
return 'Mercedes-Benz';
}
// Fail Fast
throw new Exception('Model not found);
}
Detection
[X] Automatic
We can check syntax trees and parse them and warn for missing else.
We can also rewrite them and perform mutation testing.
Tags
Conditionals
Conclusion
This kind of smell brings a lot of public debate, and hate.
We must exchange opinions and value each pros and cons.
Relations
Code Smell 102 — Arrow Code
Nested IFs and Elses are very hard to read and testblog.devgenius.io
Code Smell 36 — Switch/case/elseif/else/if statements
First programming lesson: Control structures. Senior developer lesson: avoid them.blog.devgenius.io
More Info
Fail Fast
Failure is fashionable. Making is much easier than thinking and failures are not stigma, let’s take this idea to our…codeburst.io
How to Get Rid of Annoying IFs Forever
Why the first instruction we learn to program should be the last to use.blog.devgenius.io
Credits
Photo by Elena Mozhvilo on Unsplash
The biggest issue on software teams is making sure everyone understands what everyone else is doing.
Martin Fowler
Software Engineering Great Quotes
Sometimes a short thought can bring amazing ideas.blog.devgenius.io
This article is part of the CodeSmell Series.
How to Find the Stinky parts of your Code
The code smells bad. Let’s see how to change the aromas.blog.devgenius.io