#рефакторинг #запахи_кода ![[Pasted image 20241112225933.png]] > Иногда это функция, кото­рая должна была вырасти и стать важной и востребованной позже, но которая так и не осуществила свои мечты. Иногда это класс, который раньше был нужен, но оказался уменьшен с помощью рефакторинга. В любом случае, такие элемен­ты программы должны умереть с достоинством ### **Признаки** - Класс не делает достаточно много, чтобы уделять ему достаточно внимания, он должен быть уничтожен ### **Причины появления** - Класс был задуман как полнофункциональный, но в результате рефакторинга ужался до неприличных размеров - Класс создавался в расчёте на некие будущие разработки, до которых руки так и не дошли ### **Рефакторинги** - [[Встраивание функции (Inline Function)]] - [[Встраивание класса (Inline Class)]] - [[Свертывание иерархии (Collapse Hierarchy)]] ![[Pasted image 20241112225940.png]] ### **Результат** - Уменьшение размера кода - Упрощение поддержки ### **Не стоит трогать, если...** - Иногда _Ленивый класс_ бывает создан для того, чтобы явно очертить какие-то намерения. В этом случае, стоит соблюдать баланс понятности кода и его простоты ### **Ссылки** - [https://refactoring.guru/ru/smells/lazy-class](https://refactoring.guru/ru/smells/lazy-class) - [[Мартин Фаулер - Рефакторинг кода на JavaScript]]