Публикации по теме 'code-smells'


Code Smell 202 - Класс God Constant
Константы должны быть вместе, чтобы их было легко найти TL;DR: не определяйте слишком много несвязанных констант в одном классе. Не складывайте хлам в кучу. Проблемы Плохая сплоченность Высокое сцепление Магические числа Нарушение принципа единой ответственности Решения Разбейте содержимое, следуя обязанностям реального мира, используя MAPPER . Контекст Это особый случай Божественного объекта, ограниченного только постоянными определениями. Репозиторий может..

Code Smell 143 — Сгустки данных
Некоторые объекты всегда вместе. Почему бы нам не разделить их? TL;DR: заставьте связанные примитивные объекты путешествовать вместе Проблемы Плохая сплоченность Дублированный код Сложность проверки Читабельность Ремонтопригодность Решения Извлечь класс Найдите мелкие предметы Контекст Этот запах дружит с первобытной одержимостью. Если два или более примитивных объекта склеены между собой, между ними повторяется бизнес-логика и правила, нам необходимо найти..

Kotlin Code Smells 19 — Сеттеры
Первое упражнение, которое часто делают младшие программисты, включает в себя IDE, учебные пособия и старших разработчиков, которые обучают их анти-шаблону. Проблемы Изменчивость Сокрытие информации Анемичные модели Быстрая ошибка Честность Дублированный код Параллельное программирование Решения Избегайте сеттеров Установите необходимые атрибуты при построении объекта. Образец кода Неправильный // Anemic mutable class data class PhoneCall( var origin: String?..

Код Запах 163 — Коллекция в названии
Вы когда-нибудь видели CustomerCollection? TL;DR: не используйте слово «коллекция» в своем имени. Это слишком абстрактно для конкретных понятий. Проблемы Читабельность Злоупотребление абстракцией Плохое название Решения Переименуйте коллекцию с определенным именем. Контекст Именование очень важно. Нам нужно много работать с коллекциями. Коллекции удивительны, поскольку им не нужны нули для моделирования отсутствия. Пустая коллекция полиморфна полной..

Кодовый запах 43 - Классы бетона, подклассифицированные
Наследование. Бетонные классы. Повторное использование. Фантастическая смесь. Проблемы Плохие модели Связь Замена Лискова Нарушение Переопределение метода Картограф вина Решения Подклассы должны быть специализациями. Рефакторинг иерархий. Благосклонность композиции. Классы листьев должны быть конкретными. Не листовые классы должны быть абстрактными. Образец кода Неправильный Правильно Обнаружение Отмена конкретного метода - явный запах. Мы..