Правила оформления кода

Материал из GGTeam
Перейти к навигации Перейти к поиску

1. Наименование объектов

Все имена задаются на английском языке.

При вызове делегатов обязательно использовать Invoke

Порядок методов в классах должен следовать порядку их выполнения (по возможности)

TODO пишется большими буквами, над полями

Подписки на методы делать через код, запрещено делать через UI unity

Все методы, которые что-то возвращают должны начинаться с Get

Все методы, которые задают значения или параметры должны начинаться с Set

Не делаем вызов элемента через несколько точек

/// <summary>

/// Имена интерфейсов начинаются с буквы 'I', далее - название с прописной

/// </summary>

public interface IClickable

{

   /// <summary>

   /// Имена event-ов всегда пишутся с большой буквы и имеют в конце приставку Event

   /// </summary>

   event Action<bool> ClickEvent;

}


/// <summary>

/// Имена типов данных начинаются с большой буквы

/// </summary>

public class MyClass

{

   /// <summary>

   /// Любые константы (private, public, protected и тд) пишутся в формате X_X_X

   /// </summary>

   private const int MY_CONST_VARIABLE = 10;

   

   /// <summary>

   /// Приватные проперти запрещены

   /// </summary>

   private int MyProperty { get; set; }

   

   /// <summary>

   /// Имена любых (public, protected и тд) свойств пишутся с большой буквы

   /// </summary>

   public float MyProperty2 { get; set; }


   /// <summary>

   /// В кортежах обязательно именовать параметры с большой буквы

   /// </summary>

   public (int IntVariable, float FloatVariable, long LongVariable) Variables;

   

   /// <summary>

   /// Имена protected полей класса пишутся с большой буквы

   /// </summary>

   protected int MyIntField;

   

   /// <summary>

   /// Имена private полей класса начинаются с подчёркивания _name

   /// </summary>

   private int _myIntField;


   /// <summary>

   /// Имена членов класса начинаются с большой буквы

   /// </summary>

   private void MyMethod()

   {

       // Имена локальных переменных начинаются со строчной буквы

       int myIntVar;

       

       //Во всех возможных ситуациях используем var, явное указание типа используется, только если не известно значение

       var variable = 0;

   }

}

Языковые конструкции

Ключевое слово this не используется для доступа к членам класса (за редким исключением).

Перед private-членами класса всегда указывается модификатор private.

Всем объектам, методам, переменным и т.п. обязательно указывать модификаторы доступа

4. Кеширование

Все менеджеры необходимо кэшировать в переменные на создании/инициализации класса

5. Порядок объявления членов класса

  • Constant Fields
  • Fields
  • Properties
  • Events
  • Constructors
  • Finalizers (Destructors)
  • Method
  • Interfaces (реализация интерфейсов, каждый в своем #region)
  • Delegate
  • Structs
  • Classes

6. Оформление кода

  • Не оставляем пустых строк в конце файла, после закрытия класса и после последнего метода
  • Не делаем разрывы более 1 пустой строки между объявляемыми сущностями (методы, свойства и т.д.)
  • Между несколькими классами, объявленными в одном файле - обязательно разрыв 1 пустая строка
  • Не сокращаем имена переменных (напр. socialNetwork до sn), но названия лучше выбирать короткие, лаконичные
  • Если в условии (if) не делаем скобок {}, то следующую после результата выполнения строку делаем пустой, чтобы код не сливался