Рекомендации по оформлению кода

Общий форум

Модератор: app

Рекомендации по оформлению кода

Сообщение radist » Вт июл 21, 2009 2:35 am

Вот такой вопрос

У нас на вики есть статья которая является жалким подобием необходимого. Я не нашел или действительно отсутсвует "coding convention" ?
radist
 
Сообщения: 97
Зарегистрирован: Ср фев 25, 2009 10:39 am

Re: Рекомендации по оформлению кода

Сообщение radist » Вт июл 21, 2009 2:45 am

* Способы выбора названий и используемый регистр символов для имён переменных и других идентификаторов;
* Стиль отступов при оформлении логических блоков — используются ли символы табуляции, ширина отступа;
* Способ расстановки скобок, ограничивающих логические блоки;
* Использование пробелов при оформлении логических и арифметических выражений;
* Стиль комментариев и использование документирующих комментариев.


В наличии только последний пункт.

Тут поступало следующее предложение:

* Способы выбора названий и используемый регистр символов для имён переменных и других идентификаторов;

Префиксы

Переменные:

a - аргумент функции как значение или ссылка, например QString &aFileName, int aCount
ap - аргумент функции как указатель, например const char *apFileName

v - локальная переменная как значение или ссылка, например QString &vFileName, int vCount
vp - локальная переменная как указатель, например const char *vpFileName

m - член-данное класса/структуры как значение или ссылка, например QString &mFileName, int mCount
mp - член-данное класса/структуры как указатель, например const char *mpFileName

g - глобальная переменная как значение или ссылка, например QString &gFileName, int gCount
gp - глобальная переменная переменная как указатель, например const char *gpFileName


Функции:

Если имя функции состоит из одного слова, то оно записывается строчными буквами,
например:
int width() {};
int count() {};

Если имя функции состоит из нескольких слов, то оно записывается следующим образом:
первое слово записывается строчными буквавами, каждое следующее с заглавной буквы.
например:
int getWidth();
bool writeDocumentToDisk(const QString &aFileName);


Классы/Структуры:

Имена структур и классов записываются следующим образом: для класса используется
префикс 'C', для структуры используется префикс 'S', каждое слово начинается с
заглавной буквы и не используются нижние подчеркивания между словами. Например:

class CMyClass {
Q_OBJECT
public:
...
protected:
...
private:
};

Конструкции разграничения прав доступа к членам-данным и методам классам записываются
без отступа. Декларации методов и определения членов-данных делаются с отступом. Порядок
определения прав доспупа: public, protected, private. Порядок записи медодов и
членов-данных: методы потиом члены-данных.

* Стиль отступов при оформлении логических блоков — используются ли символы табуляции, ширина отступа;

Отступы делаются в виде 4 пробелов. Использование табуляции не допускается.
radist
 
Сообщения: 97
Зарегистрирован: Ср фев 25, 2009 10:39 am

Re: Рекомендации по оформлению кода

Сообщение antares0 » Вт июл 21, 2009 4:59 am

Это импровизация или откуда то взято?
Вобще хоть это пером и не написано, но все классы ананаса начинаются с `a`, что по-моему по аналогии q-классами вполне логично. Поэтому пункты о переменных и классах срзу уходят. Оформление скриптов - отдельный вопрос, но и там по-моему будет мешать восприятию.

Члены-данные - это которые свойства и переменные класса?
Почему они после методов? Вседа вроде были до?
Или это у меня паскаль-синдром. Все равно не не могу вспомнить кода в таком стиле.
antares0
 
Сообщения: 42
Зарегистрирован: Пн мар 16, 2009 6:23 pm

Re: Рекомендации по оформлению кода

Сообщение radist » Вт июл 21, 2009 6:35 pm

Это импровизация или откуда то взято?


Взято, конкретный пример из работы, человек привел.

Вобще хоть это пером и не написано, но все классы ананаса начинаются с `a`, что по-моему по аналогии q-классами вполне логично.


Очень может быть, вопрос в том, что желательно это оформить в статью.
radist
 
Сообщения: 97
Зарегистрирован: Ср фев 25, 2009 10:39 am

Re: Рекомендации по оформлению кода

Сообщение zcrendel » Чт авг 06, 2009 9:03 am

antares0 писал(а):Это импровизация или откуда то взято?
Вобще хоть это пером и не написано, но все классы ананаса начинаются с `a`, что по-моему по аналогии q-классами вполне логично.


Нелогично, например ясно, что C от слова "Class", как и "S" от слова "Structure". Если класс начинается с "A" то логично, чтобы это был абстрактный класс. Если начинается с "I" - это интерфейс.

antares0 писал(а): Поэтому пункты о переменных и классах срзу уходят. Оформление скриптов - отдельный вопрос, но и там по-моему будет мешать восприятию.


Никуда они не уходят, судя по текущему состоянию исходников, которые воспринимаются очень тяжело. К примеру: как отличить члены-данные от локальной переменной, а те в свою очередь от агрумента функции, внутри тела функции? Искать где какая переменная объявлена?

Да, скрипты это отдельный вопрос, хотя и там никто не мешает использовать эту терминологию.

antares0 писал(а):Члены-данные - это которые свойства и переменные класса?
Почему они после методов? Вседа вроде были до?
Или это у меня паскаль-синдром. Все равно не не могу вспомнить кода в таком стиле.


Открываем исходники самой Qt4 и смотрим в любой .h файл :-)
zcrendel
 
Сообщения: 10
Зарегистрирован: Пн май 25, 2009 2:35 pm


Вернуться в Общий форум

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

cron