How many times do we see lazy argument names?
TL;DR: Name your arguments according to the role and not the accidental position
Problems
Readability
Intention Revealing Names
Solutions
- Use meaningful names
Context
When writing methods, we usually don't stop to find decent names.
We never refactor the obvious, neither.
Sample Code
Wrong
class Calculator:
def subtract(self, first, second):
return first - second
class CalculatorTest:
def test_multiply():
assert equals(first, second)
Right
class Calculator:
def subtract(self, minuend, subtrahend):
return minuend - subtrahend
class CalculatorTest:
def test_multiply():
assert equals(expectedValue, realValue)
Detection
[x] Manual
We can warn for forbidden words like 'first' and 'second' as argument names.
Tags
- Readability
Conclusion
Always follow rule suggesting parameter.
Name your collaborators according to the role.
Relations
More Info
Credits
Photo by Priscilla Du Preez on Unsplash
Final source code is the real software design.
Jack Reeves
This article is part of the CodeSmell Series.