Skip to content

Latest commit

 

History

History
112 lines (94 loc) · 3.17 KB

Оформление_исходников.md

File metadata and controls

112 lines (94 loc) · 3.17 KB

Оформление исходников

Документ описывает правила оформления кода для сохранения единого стиля и повышения его читаемости.

  • Вместо табуляции для отступов в коде используются 4 пробела.

  • Конец строки задаётся в unix формате (LF).

  • В случае, если файлы содержат определение классов, они именуются следующим образом: %ClassName%.hpp %ClassName%.cpp. Иначе все буквы в имени файла должны быть строчными (маленькими):

SpeedTest.hpp
SpeedTest.cpp
version.hpp
  • Все имена переменных начинаются со строчной буквы:
QString filePath;
  • Все имена функций также начинаются со строчной буквы:
const QString & getFilePath();
  • Глобальные переменные программы именуются с префиксом g%varName% :
int gDebugLevel;
  • Переменные класса именуются с префиксом _%varName%:
uint8_t _buff;
  • Классы именуются с прописной (заглавной) буквы:
class Man
{
public:
        Man();
private:
        int _height;
        int _age;
}
  • Пространства имен -- строчными символами:
namespace lightpack
{
}
  • Константы именуются с прописной буквы с префиксом k:
const int kFirstLetterCapital;
  • Не рекомендуется использовать #define в C++ коде. В случае острой необходимости в имени все символы должны быть прописными:
# define ALL_CAPITAL_LETTERS
  • Пробелы после if, for, while, и других ключевых слов:
if (first == second)
{
    for (int i = 0; i < N; i++)
        doSomething();
    while (condition)
        doSomethingElse();
} else {
    findCallbackFunction();
}

  • В случае единственного оператора во всех ветках скобки можно опустить:
if (first == third)
        start();
else
        stop();
  • В заголовочных файлах для устранения коллизий используется директива контроля:
# pragma once
  • Пространства имен записываются без отступов:
namespace lightpack
{
namespace speedtests
{
        class AnotherMan
        {
        }
}
}
  • При использовании в коде комментариев с пометкой TODO желательно точно описывать, что именно автор планировал сделать:
int getAvgColor()
{
        // TODO: come up with a very fast algorithm for calculating the average color
        return -1;
}