Под дружеским ярлыком скрывается еще один запах спаривания.
Проблемы
- Связь
- Неожиданные результаты
- Побочные эффекты
- Волновой эффект
- В языках с необязательными аргументами, но ограниченными базовыми типами, нам нужно установить флаг и добавить случайный IF (еще один запах).
Решения
- Сделайте аргументы явными.
- Все вызовы функций должны иметь одинаковую арность.
- Используйте именованные параметры, если ваш язык их поддерживает.
Образец кода
Неправильный
Правильно
Обнаружение
Обнаружение легко, если язык поддерживает необязательные аргументы.
Теги
- По желанию
- Лень
Вывод
Будьте откровенны. Предпочитайте удобочитаемость более короткому (и более связанному) вызову функции.
Больше информации
Проблема с программистами в том, что вы никогда не можете сказать, что делает программист, пока не станет слишком поздно.
Сеймур Крей
Эта статья является частью серии CodeSmell.