Логотип ConstructiCat
CodeBust.
Навигация по разделу ▾

Запахи кода.

Признаки более глубоких проблем в коде. Каждая статья содержит ссылки на приёмы рефакторинга, которые помогают их устранить.

Маскот паттернов проектирования
Комментарии

Метод содержит множество поясняющих комментариев.

005
Маскот запахов кода
Класс данных

Классы данных — это классы, которые содержат только поля и простейшие методы для доступа к ним (геттеры и сеттеры). Это просто контейнеры для данных, используемые другими классами. Эти классы не содержат никакой дополнительной функциональности и не могут самостоятельно работать с данными, которыми владеют.

006
Маскот рефакторинга
Мёртвый код

Переменная, параметр, поле, метод или класс больше не используются (чаще всего потому, что устарели).

007
Маскот антипаттернов
Дублирование кода

Два фрагмента кода выглядят почти одинаковыми.

008
Маскот антипаттернов
Ленивый класс

На понимание и поддержку классов всегда требуются затраты времени и денег. А потому, если класс не делает достаточно много, чтобы уделять ему достаточно внимания, он должен быть уничтожен.

009
Маскот паттернов проектирования
Теоретическая общность

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

010
Маскот паттернов проектирования
Группы данных

Иногда в разных частях кода встречаются одинаковые группы переменных (например, параметры подключения к базе данных). Такие группы следует превращать в самостоятельные классы.

011
Маскот антипаттернов
Большой класс

Класс содержит множество полей/методов/строк кода.

012
Маскот антипаттернов
Длинный метод

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

013
Маскот запахов кода
Длинный список параметров

Количество параметров метода больше трёх-четырёх.

014
Маскот рефакторинга
Одержимость элементарными типами

Элементарные типы используются вместо маленьких объектов для небольших задач (валюта, диапазоны, специальные строки для телефонных номеров и т. п.), константы — для кодирования информации (например, USER_ADMIN_ROLE = 1 для пользователей с правами администратора), а строковые константы — в качестве названий полей в массивах данных.

015