Этот обзор анализирует код трёх подписчиков, приславших свои проекты на бесплатный CodeReview. Рассмотрим типичные ошибки начинающих разработчиков Unity и пути их улучшения.
Код Яковлева и Ильи
Первый проект выявил несколько моментов:
- Гид компоненты: Рекомендуется стандартный подход к созданию гид-компонентов, добавляя компоненты трекера для чёткого определения используемых полей. Привязка полей к свойствам, особенно без взаимодействия с инспектором, неэффективна. Автореализуемые свойства предпочтительнее.
- Сеттеры: Использование сеттеров с ресурсоёмкими операциями не рекомендуется. В C# предпочтительнее автореализуемые свойства без явных сеттеров.
- Неясная логика: Условие «если y не бесконечный, то тогда мы ставим только y» запутанно. Непонятно использование Vector3 только с Y-компонентой. Необходимо пересмотреть логику и разбить её на более мелкие методы.
- Отсутствие предметной ориентации: Код лишён предметной ориентации. Проверки и операции следует оформить в виде отдельных методов с понятными названиями.
- Конвенции именования: Используются сокращения и несогласованность в именовании переменных (например, «из»). Необходимо придерживаться единого стиля.
Код Хауди Хо («Дрифт»)
В коде игры «Дрифт» обнаружены следующие проблемы:
- Неоднозначность именования: Имена методов и переменных недостаточно описательны. Необходимо использовать более точные имена.
- Конкатенация строк: Конкатенация строк (string + string) неэффективна. Используйте форматирование строк или интерполяцию.
- Управляющие флаги: Управляющие флаги затрудняют понимание и отладку. Рекомендуется пересмотреть логику и заменить флаги на более явное представление состояния.
- Обработка ошибок: Отсутствие обработки ошибок может привести к непредсказуемому поведению. Необходимо добавить обработку ошибок и проверку предусловий.
- Неэффективное использование методов: Некоторые методы выполняют слишком много действий. Разбейте их на более мелкие, специализированные методы.
- Неясные названия методов: Названия методов, например MoveCharacter, неточны. Используйте более предметные названия, например TryMoveCharacter.
- Дублирование кода: Присутствует дублирование кода (например, main.transform.position). Устраните дублирование.
Общие замечания
Во всех трёх проектах обнаружены проблемы:
- Недостаточная предметная ориентация кода.
- Неясная логика.
- Неэффективные подходы к работе с объектами.
- Несогласованность в именовании переменных и методов.
Красивый внешний вид кода не гарантирует его качества. Код должен быть понятным, поддерживаемым и эффективным.
CodeReview показал, что даже опытные разработчики допускают ошибки в проектировании и написании кода. Постоянное обучение и совершенствование навыков – ключевые аспекты успешной разработки игр. Для улучшения качества кода важно следовать общепринятым стандартам, использовать эффективные подходы к проектированию и писать понятный, читаемый код.