Be consistent with the parameters you use. Code is prose.
TL;DR: Don't confuse you readers. Keep the order.
Problems
Readability
Consistency
Solutions
Refactor and change parameters order.
Use named parameters
Sample Code
Wrong
function giveFirstDoseOfVaccine(person, vaccine) {
//
}
function giveSecondDoseOfVaccine(vaccine, person) {
//
}
giveFirstDoseOfVaccine(jane, pfizer);
giveSecondDoseOfVaccine(jane, pfizer); //Unnoticed mistake
Right
function giveFirstDoseOfVaccine(person, vaccine) {
//
}
function giveSecondDoseOfVaccine(person, vaccine) {
//
}
giveFirstDoseOfVaccine(jane, pfizer);
giveSecondDoseOfVaccine(jane, pfizer); //jane is immunized
Detection
- Some very smart linters may be able to compare arguments and hint for possible mistakes.
Tags
- Readability
Conclusion
This is a very simple smell.
Readability is very important to avoid mistakes.
Relations
Code Smell 10 - Too Many Arguments
Maxi Contieri ・ Oct 29 '20
Credits
Photo by Lance Grandahl on Unsplash
Computers are good at following instructions, but not at reading your mind.
Donald Knuth
Software Engineering Great Quotes
Maxi Contieri ・ Dec 28 '20
This article is part of the CodeSmell Series.
Top comments (1)
Usually for cases like this I would create a factory to avoid the ambiguity, something like:
This way we can avoid this category of issues in the first place.