Запахи кода в разработке XOOPS
Запахи кода - это показатели потенциальных проблем в коде. Они не обязательно означают, что код сломан, но они указывают на области, которые могут извлечь выгоду из рефакторинга.
Дутые коды
Заголовок раздела «Дутые коды»Длинный метод
Заголовок раздела «Длинный метод»Метод делает слишком много - разделите на несколько методов, каждый с одной ответственностью.
Большой класс (Объект-Бог)
Заголовок раздела «Большой класс (Объект-Бог)»Класс делает все - разделите на сфокусированные классы для каждой ответственности.
Длинный список параметров
Заголовок раздела «Длинный список параметров»Используйте объекты параметров вместо списков отдельных параметров.
Нарушители объектной ориентации
Заголовок раздела «Нарушители объектной ориентации»Операторы Switch
Заголовок раздела «Операторы Switch»Используйте полиморфизм вместо проверки типов с использованием операторов switch.
Временное поле
Заголовок раздела «Временное поле»Поля используются только в определенных ситуациях - передавайте как параметр или возвращаемое значение.
Препятствия к изменениям
Заголовок раздела «Препятствия к изменениям»Расходящееся изменение
Заголовок раздела «Расходящееся изменение»Один класс изменяется по множеству разных причин - разделите ответственность.
Хирургия дробовика
Заголовок раздела «Хирургия дробовика»Одно изменение требует множество отредактированных файлов - централизуйте общую функциональность.
Расходуемые
Заголовок раздела «Расходуемые»Мертвый код
Заголовок раздела «Мертвый код»Удалите недостижимый или неиспользуемый код из кодовой базы.
Дублированный код
Заголовок раздела «Дублированный код»Извлеките общую логику в утилиты или трейты для переиспользования.
Соединители
Заголовок раздела «Соединители»Зависть функции
Заголовок раздела «Зависть функции»Метод использует данные другого объекта больше, чем свои собственные - переместите поведение на объект с данными.
Чеклист рефакторинга
Заголовок раздела «Чеклист рефакторинга»При обнаружении запаха кода: определите, оцените, спланируйте, тестируйте и рефакторьте.
Связанная документация
Заголовок раздела «Связанная документация»- Clean Code Principles
- Code Organization
- Testing Best Practices