Software Design/Call function's return variable "result"
Checklist questions:
- Function's result variable is called
result
? - Function's result variable name starts with result-?
Why
editWhen there is a variable called result
(or res
, r
, etc.) in a function, it's harder to make a mistake by accidentally returning a wrong variable because it's expected that the return statement will look like return result
.
When this practice is a convention in a codebase which is followed consistently, always naming the result variable result
becomes a form of structure in the code. Readers can grasp functions' logic quicker by recognizing appearances of result
in the code. This convention is used by Martin Fowler.[1]
Why not
editAs described in practice Avoid a variable called "result", naming the return variable result
is a missed opportunity to attach semantic information to the variable. In relatively longer functions, readers may need to deduce or to return to the function's declaration and the documentation to recall what is returned from the function. Thus, a return variable called result
makes the code of the function less obvious and makes readers navigate more.
Combining the approaches
editA compromise solution is to call functions' result variables resultSemanticName
, for example, resultDiscountDecimal
in getDiscountPlatinumLoyalityForAccessories()
function in the opposite practice.