Разработчик под ником FAM поделилась в блоге восемью признаками, которые могут выдать так называемый smell code. Автор считает, что важно знать о распространенных проблемах и ошибках кода, чтобы распознать их в проекте и быстро нейтрализовать во время рефакторинга.
Если в команде нет договоренностей или принципов именования переменных, следует внести их. По мере роста приложения, принцип нейминга становится решающим. В какой-то момент команде придется говорить «на одном языке», поэтому наличие принципов именования и документации по архитектуру, которые будет уважать каждый разработчик, очень важны.
Принципы нейминга:
Для наглядности можете опираться на следующую схему:
Принципы именования переменных
Слишком большой размер метода, функции или процедуры — это источник ошибок и недопонимания. Считается, что код плохой, если в нем методы/функции имеют размер (в строках по вертикали) больше, чем «x*размер экрана», где х = 0,5..1.
Это антипаттерн объектно-ориентированного программирования, описывающий объект, который хранит в себе слишком много и делает слишком много, препятствуя поддержанию кода проекта.
Класс должен существовать для одной цели, даже когда он становится больше и выполняет множество функций. Затем его следует разбить на подобъекты. Если все соблюсти, можно избежать ошибок, сократить время исследования и упростить процесс тестирования.
Явление, когда последовательность исходного кода встречается более одного раза в программе. Дублирование означает удвоение затрат на поддержку кода и его тестирование. Рефакторинг должен проводиться всякий раз, когда функция, класс, модуль или код в целом должны быть разделены, чтобы избежать дублирования кода.
Длинный список параметров трудночитаем и усложняет вызов и тестирование функции. Упрощение поможет сократить время исследования и упростить тестирование.
Имеется в виду якобы вынужденное использование более сложных шаблонов проектирования, когда достаточно простых. Использование сложных шаблонов показывает невозможность разработчика упрощать код и неспособность видеть общую картину.
Антипаттерн в разработке программного обеспечения, когда специалист добавляет функции в кодовую базу приложения, которые охватывают множество разработчиков или реализаций за одно изменение. Важно понимать, что цель — написать поддерживаемый код, поэтому надо думать о будущем, а не о том, что и как было бы удобно написать сейчас.
Затрудняют рефакторинг кода, поскольку фактические значения непредсказуемы.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…