🐨
Unreal Engine Tips
  • 🐦О сайте
  • 🐸Об авторе
  • Unreal Engine
    • 🦉C++
    • 💎Материалы
    • 🎆Niagara
    • 🦴Анимации
    • 🌞Управление уровнями
    • 🌴Game Design
    • 🐾Git
    • 🪱Workflow разработки
    • 🐙Coding Standard
    • 🦞Руководство по стилю
    • 🦋Рефакторинг
    • 🐞JetBrains Rider
    • 🐧Разное
    • 🐫Полезные ссылки
Powered by GitBook
On this page
  • Naming Conventions
  • Правила написания кода
  • Обработка ошибок
  • Порядок данных в заголовочном файле
  • Порядок переменных и функций в заголовочном файле
  • Порядок данных в файле реализации
  • Порядок функций в файле реализации
  • Правило обращения к переменным класса
  • Checklist для перечислений
  • Checklist для классов
  • Checklist для методов
  • Checklist для переменных
  • Checklist по числам
  • Checklist по условным операторам
  • Checklist по тестированию
  • Checklist по виджетам
  1. Unreal Engine

Coding Standard

PreviousWorkflow разработкиNextРуководство по стилю

Last updated 5 months ago

Naming Conventions

Ориентироваться стоит на правила, указанные в .

Если там нет ответа на вопрос, то ориентироваться стоит на следующие проекты по убыванию приоритета:

Правила написания кода

  1. Использовать ClangFormat

  2. Использовать модули (сделать правильный выбор между PublicDependencyModuleNames или PrivateDependencyModuleNames для добавления зависимости)

  3. Весь код должен быть протестирован

Обработка ошибок

  1. Макрос check используется только для критических условий, без выполнения которых дальнейшее продолжение игры бессмысленно

  2. В большинстве случаев для проверки корректности входных данных используется if и ensure

  3. Получив ошибку, начинать надо с написания теста, выявляющего эту ошибку

Порядок данных в заголовочном файле

  1. Copyright

  2. #pragma once

  3. #include по алфавиту файлов движка

  4. #include по алфавиту файлов проекта

  5. #include FileName.generated.h, если необходим

  6. Forward declaration по алфавиту типов движка (сначала структуры, потом интерфейсы и потом классы)

  7. Forward declaration по алфавиту типов проекта (сначала структуры, потом интерфейсы и потом классы)

  8. Делегаты

  9. Перечисления

  10. Структуры

  11. Объявление класса

Порядок переменных и функций в заголовочном файле

Сначала указываются все сущности public, затем protected и в конце private:

  1. Переменные с макросом UPROPERTY

  2. Статические константы

  3. Статические переменные

  4. Обычные переменные

  5. Делегаты

  6. Конструкторы

  7. Функции с макросом UFUNCTION()

  8. Статические функции

  9. Виртуальные функции (set-функции располагаются выше, чем get-функции)

  10. Обычные функции (set-функции располагаются выше, чем get-функции)

Порядок данных в файле реализации

  1. Copyright

  2. #include заголовочного файла

  3. #include по алфавиту файлов движка

  4. #include по алфавиту файлов проекта

  5. Функции в соответствующем порядке

Порядок функций в файле реализации

Порядок берётся изначально из заголовочного файла (соответственно, в начале файла всегда идут конструкторы), но он изменяется в случае вызова одних функций из других. Например, если функция A() вызывает функцию B(), которая ещё не была реализована, то сразу после функции A() реализуется функция B(), и если внутри неё вызывается функция C(), то следующей реализуется функция C().

Когда все эти функции определены, берётся следующая нереализованная функция из заголовочного файла после функции A().

Правило обращения к переменным класса

Предпочтительно сначала использовать непосредственное обращение к переменной, пока оно не является препятствием. При возникновении неудобств этого подхода стоит переходить на косвенное обращение к переменным, то есть через get-функцию.

Checklist для перечислений

Checklist для классов

Checklist для методов

Checklist для переменных

Checklist по числам

Checklist по условным операторам

Checklist по тестированию

Checklist по виджетам

🐙
руководстве по стилю
Cropout Sample Project
Lyra Sample Game