Метод производит вычисления с большим количеством чисел без описания их семантики.

Проблемы

  • "Связь"
  • Низкая тестируемость
  • Низкая читаемость
  • Повторный код

Решения

1) Переименуйте константу, указав семантику и имя (значимое и раскрывающее намерение).

2) Замени константы параметрами, чтобы можно было издеваться над ними извне.

3) Определение константы часто представляет собой другой объект, чем постоянный (ab) пользователь.

Примеры

  • Гиперпараметры алгоритмов

Образец кода

Неправильный

Правильно

Обнаружение

Многие линтеры могут обнаруживать числовые литералы в атрибутах и ​​методах.

связи

Теги

  • Жестко закодированный
  • Константы
  • Повторный код

Больше информации

Эта статья является частью серии Code Smell Series.