Code Review C# Unity: ошибки новичков и лучшие практики

Этот обзор анализирует код трёх подписчиков, приславших свои проекты на бесплатный CodeReview. Рассмотрим типичные ошибки начинающих разработчиков Unity и пути их улучшения.

Код Яковлева и Ильи

Первый проект выявил несколько моментов:

  • Гид компоненты: Рекомендуется стандартный подход к созданию гид-компонентов, добавляя компоненты трекера для чёткого определения используемых полей. Привязка полей к свойствам, особенно без взаимодействия с инспектором, неэффективна. Автореализуемые свойства предпочтительнее.
  • Сеттеры: Использование сеттеров с ресурсоёмкими операциями не рекомендуется. В C# предпочтительнее автореализуемые свойства без явных сеттеров.
  • Неясная логика: Условие «если y не бесконечный, то тогда мы ставим только y» запутанно. Непонятно использование Vector3 только с Y-компонентой. Необходимо пересмотреть логику и разбить её на более мелкие методы.
  • Отсутствие предметной ориентации: Код лишён предметной ориентации. Проверки и операции следует оформить в виде отдельных методов с понятными названиями.
  • Конвенции именования: Используются сокращения и несогласованность в именовании переменных (например, «из»). Необходимо придерживаться единого стиля.

Код Хауди Хо («Дрифт»)

В коде игры «Дрифт» обнаружены следующие проблемы:

  • Неоднозначность именования: Имена методов и переменных недостаточно описательны. Необходимо использовать более точные имена.
  • Конкатенация строк: Конкатенация строк (string + string) неэффективна. Используйте форматирование строк или интерполяцию.
  • Управляющие флаги: Управляющие флаги затрудняют понимание и отладку. Рекомендуется пересмотреть логику и заменить флаги на более явное представление состояния.
  • Обработка ошибок: Отсутствие обработки ошибок может привести к непредсказуемому поведению. Необходимо добавить обработку ошибок и проверку предусловий.
  • Неэффективное использование методов: Некоторые методы выполняют слишком много действий. Разбейте их на более мелкие, специализированные методы.
  • Неясные названия методов: Названия методов, например MoveCharacter, неточны. Используйте более предметные названия, например TryMoveCharacter.
  • Дублирование кода: Присутствует дублирование кода (например, main.transform.position). Устраните дублирование.

Общие замечания

Во всех трёх проектах обнаружены проблемы:

  • Недостаточная предметная ориентация кода.
  • Неясная логика.
  • Неэффективные подходы к работе с объектами.
  • Несогласованность в именовании переменных и методов.

Красивый внешний вид кода не гарантирует его качества. Код должен быть понятным, поддерживаемым и эффективным.

CodeReview показал, что даже опытные разработчики допускают ошибки в проектировании и написании кода. Постоянное обучение и совершенствование навыков – ключевые аспекты успешной разработки игр. Для улучшения качества кода важно следовать общепринятым стандартам, использовать эффективные подходы к проектированию и писать понятный, читаемый код.

Что будем искать? Например,программа