Основа - 3KGames/rules GitHub Wiki

Мотивация

Единый стиль написания кода у всех участников важен для быстрого вкатывания в чужой код.

Пример. Один разработчик, пускай его будут звать женя, написал метод CallUtka(), который использует переменную PP_Utka_Roman_utkaUTKA. Я уверяю, что в таком коде будет очень сложно разбираться, вплодь до того, что даже не понятно PP_Utka_Roman_utkaUTKA переменная, или пространство имен. Или вот нужно отрефакторить один скрипт большой скрипт (1000+ строк), в котором все сложено в случайном порядке - метод, поле, поле, коструктор, евент, поле, метод и так далее. Будет невыносимо сложно прыгать от строки к строке. Поэтому нужен единый стиль именования и единый порядок расположения элементов в классе.

Где что и как писать

Следующие рекомендации почти полностью взяты из C# at Google Style Guide, лишь некоторые моменты, которые я счел необязательными были убраны или переработаны.

Наименования

  • Имена классов должны быть в PascalCase'e
  • Имена всех полей, локальных переменных и параметров в camelCase'e
  • Публичные методы именуются PascalCase'ом
  • Название интерфейсов начинается с заглавной I: IPascalCase
  • Файлы и папки называются в PascalCase и PascalCase.cs стилях

Организация

Порядок размещения методов класса

  • Группирование членов класса осуществляется в порядке:
    1. Вложенные сущности (классы, структуры, перечисления)
    2. Статичные, константные поля
    3. Поля
    4. Евенты
    5. Геттеры и сеттеры
    6. Конструкторы, деструкторы, либо методы Monobehavior'а в порядке из вызова движком
    7. Методы
  • Внутри каждой группы элементы должны быть расположены в следующем порядке:
    1. public
    2. protected
    3. private