Разберем ошибки проекта, победившего в конкурсе по разработке Unity-игр, и покажем пути улучшения кода. Цель анализа – демонстрация повышения качества кода и принципов проектирования.
Проблемы наименования и структуры кода
Неудачное наименование элементов кода, например, ШкафМенеджер, размывает ответственность объекта. Транслитерация («Шкаф») снижает читаемость. Наименование методов нестандартизовано и не отражает их смысла. Отсутствуют явные параметры и возвращаемые значения. Использование статических полей в статическом классе для представления состояния игры нарушает инкапсуляцию. Метод, предположительно ШкафМенеджер, изменяет статические поля другого класса, затрудняя сопровождение кода.
Проблемы с управлением ресурсами
Все ресурсы игрока оформлены как отдельные классы, что избыточно. Использование статических полей и копирования кода (copy-paste) делает код неэффективным и трудно поддерживаемым. Вместо этого целесообразно использовать условный класс DataSource для хранения всех ресурсов, что позволит избежать дублирования кода и упростит обработку ресурсов. Использование статических полей, особенно новичками, часто приводит к проблемам из-за сложности этого инструмента.
Неявное программирование и доступ к данным
Неявное программирование, где смысл действия определяется по ключу (например, увеличение значения хавка у молока), ухудшает читаемость и сопровождаемость. Явное программирование улучшило бы понимание кода. Частое обращение к полям объектов извне, вместо использования параметров методов, снижает читаемость и затрудняет понимание логики. Необходимо использовать параметры методов для передачи данных и возвращать результаты.
Проблемы с дизайном методов
Метод Сон содержит длинную цепочку условных операторов. Лучше использовать декларативный подход, разделив логику на отдельные методы, каждый из которых отвечает за определенное действие. Это повысит читаемость и упростит изменение/расширение функциональности. Текущая реализация размывает стратегию и реализацию, затрудняя понимание.
Анализ выявил типичные ошибки начинающих разработчиков: использование статических полей, неявное программирование, нестандартное наименование элементов и отсутствие явной логики в методах. Всё это ухудшает качество кода. Однако, победа проекта в конкурсе подчеркивает важность не только чистоты кода, но и креативности идеи.