Qt Coding Style/ru

From Qt Wiki
< Qt Coding Style
Revision as of 10:48, 17 October 2017 by Gorec323 (talk | contribs) (Исправлена опечатка)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Русский English Spanish 简体中文

Правила кодирования с использованием Qt

Ниже представлен обзор соглашений по написанию кода с использованием Qt. Эта информация была собрана здесь из разных источников: документации по Qt, тематических форумов, e-mail списков рассылки и опыта различных разработчиков.

Отступы

  • Для обозначения отступа используйте 4 пробела подряд
  • Используйте пробелы, а не табуляцию!

Объявление переменных

  • Объявляйте по одной переменной в строке.
  • Избегайте, если это возможно, коротких и запутанных названий переменных (Например: "a", "rbarr", "nughdeget").
  • Односимвольные имена переменных подходят только для итераторов циклов, небольшого локального контекста и временных переменных. В остальных случаях имя переменной должно отражать ее назначение.
  • Заводите переменные только по мере необходимости.
 // Неправильно
 int a, b;
 char *c, *d;

 // Правильно
 int height;
 int width;
 char *nameOfThis;
 char *nameOfThat;
  • Функции и переменные должны именоваться со строчной буквы. Каждое последующие слово в имени переменной должно начинаться с прописной буквы.
  • Избегайте аббревиатур
 // Неправильно
 short Cntr;
 char ITEM_DELIM = ' ';

 // Правильно
 short counter;
 char itemDelimiter = ' ';
  • Имена классов всегда начинаются с заглавной буквы. Public-классы начинаются с буквы 'Q' (QRgb). Public-функции должны начинаться с прописной буквы 'q' (qRgb).
  • Сокращения в верблюжем регистре. (e.g. QXmlStreamReader, not QXMLStreamReader).

Пробелы

  • Используйте пустые строки для логической группировки операторов, где это возможно.
  • Всегда используйте одну пустую строку в качестве разделителя
  • Всегда используйте один пробел перед фигурной скобкой
 // Неправильно
 if(foo){
 }

 // Правильно
 if (foo) {
 }
  • Всегда ставьте один пробел после '*' или '&', если они стоят перед описанием типов. Но никогда не ставьте пробелы между '*' или '&' и именем переменной.
 char *x;
 const QString &myString;
 const char * const y = "hello";
  • Бинарные операции отделяются пробелами с двух сторон.
  • После преобразования типов не ставьте пробелов.
  • Избегайте преобразования типов в стиле C.
 // Неправильно
 char* blockOfMemory = (char* ) malloc(data.size());

 // Правильно
 char *blockOfMemory = reinterpret_cast<char *>(malloc(data.size()));


  • Не используйте несколько операторов на одной строке
  • По возможности, используйте новую строку для тела оператора ветвления:
 // Неправильно
 if (foo) bar();

 // Правильно
 if (foo)
     bar();

Фигурные скобки

  • Возьмите за основу расстановку открывающих фигурных скобок на одной строке с выражением, которому они предшествуют
  • Исключение: Тело функции и описание класса всегда открывается фигурной скобкой, стоящей на новой строке
  • Используйте фигурные скобки в условиях, если тело условия в размере превышает одну линию, или тело условия достаточное сложное и выделение скобками действительно необходимо
  • Исключение 1: Используйте скобки, если родительское выражение состоит из нескольких строк / оберток
  • Исключение 2: Используйте фигурные скобки, когда тела ветвлений if-then-else занимают несколько строчек
  • Используйте фигурные скобки для обозначения пустого тела условия

Круглые скобки

  • Используйте круглые скобки для группировки выражений:

Использование конструкции switch

  • Операторы case должны быть в одном столбце со switch
  • Каждый оператор case должен иметь закрывающий break (или return) или комментарий, которой предполагает намеренное отсутствие break & return.

Разрыв строк

  • Длина строки кода не должна превышать 100 символов. Если надо – используйте разрыв строки.
  • Запятые помещаются в конец разорванной линии; операторы помещаются в начало новой строки. В зависимости от используемой вами IDE, оператор на конце разорванной строки можно проглядеть.

Наследование и ключове слово `virtual`

  • При переопределении virtual-метода, ни за что не помещайте слово `virtual` в заголовочный файл.

Главное исключение

  • Не бойтесь нарушать описанные выше правила, если вам кажется, что они только запутают ваш код.

Categories: