Обман в кодинге: ХаудиХо, Дударь, Skillbox — правда о ‘легком коде’

Разбирается распространенное заблуждение о существовании «упрощенного кода для новичков», на примере анализа кода, написанного популярными блогерами и в онлайн-курсах. Низкое качество кода часто выдается за упрощение для начинающих, в то время как на самом деле это просто неграмотное программирование.

Анализ кода: плохой vs. хороший

Рассмотрим два варианта решения одной задачи в Unity – создание кнопки для уничтожения противника в шутере. Первый пример – «код для новичков», второй – профессиональный подход.

«Код для новичков»

  • Используются четыре поля: имя противника, ссылка на игрока, аудиоклип и визуальный эффект.
  • Вся логика находится в методе Update, который каждый кадр проверяет расстояние между игроком и противником.
  • При нажатии кнопки, объект ищется по имени, наносится урон (1000), воспроизводятся звук и эффект, а затем кнопка уничтожается.
  • Неэффективный подход: замедление работы из-за постоянной проверки расстояния в Update и плохая практика поиска объектов по имени.

Профессиональный код

  • Код значительно короче.
  • Используется абстракция: метод Kill() отвечает за уничтожение противника и воспроизведение эффектов.
  • Код разбит на слои, используется фреймворк Unity, что упрощает структуру и повышает читаемость.
  • Убраны неиспользуемые переменные, имена переменных и полей более информативные (например, вместо inMyName используется enemyName).
  • Используется наследование от MonoBehaviour, что позволяет избежать явного вызова Update и проверки расстояния. Прямая ссылка на объект вместо поиска по имени.
  • Упрощается обработка событий и снижается сложность.

Отличия подходов

Ключевые отличия:

  • Структура и организация кода: Профессиональный код более структурирован, читабелен и легко поддерживаем.
  • Использование фреймворка: Эффективное использование возможностей фреймворка Unity.
  • Названия переменных и полей: Более осмысленные имена.
  • Эффективность: Работает эффективнее, избегая ненужных вычислений.
  • Поиск объектов: Использует ссылки на объекты напрямую, а не поиск по именам.

Хороший, профессиональный код понятен новичкам и легче в поддержке, чем неграмотно написанный код под видом «упрощенного».

Нет такого понятия, как «код для новичков», специально написанный с ошибками. Низкокачественный код часто преподносится как упрощение, чтобы скрыть некомпетентность авторов. Профессиональный подход делает код более понятным и легко поддерживаемым, даже для начинающих. Рекомендуется ориентироваться на качество кода, а не на обещания «упрощения».

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