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


Овеществление объектов: решение общих проблем с программным обеспечением
TL;DR: Use arrays for rapid prototyping, use object for serious business Проблемы Связь Сокрытие информации Дублирование кода Быстрая ошибка Честность Решения Овеществление объектов Создавайте связные небольшие объекты Избегайте анемичных объектов и определяйте их связные отношения. Образец кода Неправильный // Array with some raw data, what can go wrong? val coordinates = arrayOf(1000.0, 2000.0) Анемичный data class GeographicCoordinate( val longitude:..

Код Запах 171 — Множественное число классов
Курсы — моя ценность TL;DR: классы представляют понятия. И концепции единственны. Проблемы Именование Стандарты кода Решения Переименовать классы в единственное число Контекст Называть вещи трудно. Нам нужно договориться об определенных правилах. Образец кода Неправильный class Users Верно class User Обнаружение [Х] Автоматически Это синтаксическое правило. Теги Именование Заключение Назовите понятия в единственном числе. Классы..

Code Smell 169 — Склеенные методы
Не делайте две или более вещей одновременно. TL;DR: старайтесь быть как можно более атомарными в своих методах Проблемы Связанный код Сложнее тестировать Труднее читать Решения Разбейте метод Рефакторинг Рефакторинг 002 — метод извлечения Найдите несколько фрагментов кода, которые можно сгруппировать и вызвать атомарно. blog.devgenius.io Контекст Если вы называете метод с помощью «И», вы, вероятно, упускаете..

Кодовый запах 11 - Подклассификация для повторного использования кода
Повторное использование кода - это хорошо. Но создание подклассов создает статическую связь. Проблемы Связь Ремонтопригодность Решения Пользуется композицией. Исключения Если иерархия следует принципу ведет себя как , то это безопасно. Образец кода Неправильный Правильно Обнаружение Переопределение может выдавать предупреждения при создании подкласса конкретных методов. Глубокие иерархии (более 3 уровней) также являются признаком плохого подкласса...

Проблема с «кодом пахнет?»
Большинство из них произвольные, педантичные и зависят от личных предпочтений! Я знаю многих людей, которые откровенно ненавидят этот термин, говоря что-то вроде «это противно» или «не стоит так оскорблять». В этом смысл его использования. Когда что-то не так, вы говорите, что это неправильно. Если вы можете сделать это с творческим афоризмом, тем лучше. У меня нет проблем с самим термином, он правильный. Опытный разработчик может «почуять» что-то неладное при чтении участка кода...

Мой код воняет, и все в порядке
Страстная защита «запахов кода» и того, почему технические блоггеры сошли с ума Мы все видели статьи. Вы знаете, о чем я говорю. Те . Простые, сокращающие заголовки, такие как «РЕКУРСИЯ ПЛОХО» или «НАМ НУЖНО ПРЕКРАТИТЬ ИСПОЛЬЗОВАНИЕ IF / ELSE» от людей, которые только что открыли для себя функциональное программирование. И послушайте, это нормально - иметь разные мнения о вещах, включая стили кода, но есть порог, на котором вы переходите от педантичного к догматическому. И если..

Code Smell 162 — Слишком много скобок
Скобки вводятся бесплатно. Не так ли? TL;DR: используйте как можно меньше скобок. Проблемы Читабельность Синтаксическая сложность Решения Удалите все ненужные скобки Контекст Мы читаем код слева направо (по крайней мере, в западной культуре). Круглые скобки часто нарушают этот поток, добавляя когнитивную сложность. Образец кода Неправильный schwarzschild = ((((2 * GRAVITATION_CONSTANT)) * mass) / ((LIGHT_SPEED ** 2))) Верно schwarzschild = (2 *..