The if and two returns are entirely superfluous. This type of code to me indicates a lack of understanding of what a boolean expression is. My above example should really be written:
I think that writing pseudo code on a whiteboard explaining what I have in mind, it's not the same as writing production code.
The uncecessary if and return statement will help exposing the implementation to another humans.
It's just that, I often refctor boolean expressions as you did here, so it is just that I was courious about your reasons about failing a job interview.
I would like to know why?
I think that clean code is not the main concern on a whiteboard job interview.
But cleaning up some code can also be a good question for a candidate.
The
if
and two returns are entirely superfluous. This type of code to me indicates a lack of understanding of what a boolean expression is. My above example should really be written:Or, better still:
There is nothing tricky or clever going on in my code. Being overly verbose is not the same as being clean
I see.
I think that writing pseudo code on a whiteboard explaining what I have in mind, it's not the same as writing production code.
The uncecessary if and return statement will help exposing the implementation to another humans.
It's just that, I often refctor boolean expressions as you did here, so it is just that I was courious about your reasons about failing a job interview.
The code should never be written that way in the first place - it's as bad as writing something like this in pseudocode:
Definitely a red flag
Also, violates SOLID's first principle, because now function
does two thing instead one.
The Single Responsibility Principle has nothing to do with "do just one thing" - that is a common misconception.
The Single Responsibility Principle:
So "those (many) things that change for the same reason" revolve around the same single responsibility.
Don't Repeat Yourself is another one - it' not about removing repetition or duplication:
Sometimes duplication isn't about the same thing (The Wrong Abstraction):
Also: The SOLID Design Principles Deconstructed (2013)
Basics of the Unix Philosophy: