Теоретична спільність
Симптоми і ознаки
Клас, метод, поле або параметр не використовуються.
Причини появи
Іноді код створюється «про запас», щоби підтримувати якийсь можливий майбутній функціонал, який так і не реалізується. В результаті цей код стає важче розуміти і супроводжувати.
Лікування
-
Для видалення незадіяних абстрактних класів використайте згортання ієрархії.
-
Зайве делегування функціональності іншому класу може бути видалене за допомогою вбудовування класу.
-
Від невживаних методів можна позбутися за допомогою вбудовування методу.
-
Методи з невживаними параметрами потрібно передати видаленню параметрів.
-
Зайві поля можна просто видалити.
Виграш
-
Зменшення розміру коду.
-
Спрощення підтримки.
Не варто чіпати, якщо...
-
У випадках, коли ви працюєте над фреймворком, створення функціональності, що не буде використовуватись самим фреймворком, цілком виправдане. Головне, щоб вона була потрібна користувачам фреймворка.
-
Перед видаленням елементів варто впевнитися, чи не використовуються вони в юніт-тестах. Таке буває, якщо тести потребують способу отримання якоїсь службової інформації класу або здійснення якихось спеціальних тестових дій.