Также известен как Speculative Generality

Запах кода Теоретическая общность

Симптомы и признаки

Класс, метод, поле или параметр не используются.

Причины появления

Иногда код создаётся «про запас», чтобы поддерживать какой-то возможный будущий функционал, который в итоге так и не реализуется. В результате этот код становится труднее понимать и сопровождать.

Лечение

  • Ненужное делегирование функциональности другому классу может быть удалено с помощью встраивания класса.

  • От неиспользуемых методов можно избавиться с помощью встраивания метода.

  • Методы с неиспользуемыми параметрами должны быть подвергнуты удалению параметров.

  • Неиспользуемые поля можно просто удалить.

Выигрыш

  • Уменьшение размера кода.
  • Упрощение поддержки.

Не стоит трогать, если...

  • В случаях, когда вы работаете над фреймворком, создание функциональности, не используемой самим фреймворком, вполне оправдано. Главное, чтобы она была полезна пользователям фреймворка.

  • Перед удалением элементов, стоит удостовериться, не используются ли они в юнит-тестах. Такое бывает, если в тестах необходим способ получения какой-то служебной информации класса или осуществления каких-то специальных тестовых действий.

Устали читать?

Сбегайте за подушкой, у нас тут контента на 7 часов чтения.

Или попробуйте наш интерактивный курс. Он гораздо более интересный, чем банальный текст.

Узнать больше...