Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 10 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Junior
Статус: Не в сети
Регистрация: 22.07.2006
Всем привет,

Может ли кто поделиться примером корпоративного стандарта программирования на C/C++?

С уважением.



Партнер
 

Member
Статус: Не в сети
Регистрация: 17.06.2005
Откуда: [ХАРЬКОВ]
Ты имеешь ввиду оформление кода или что-то иное?

_________________
Кольорова крейда це знаряддя деявола!


 

Junior
Статус: Не в сети
Регистрация: 22.07.2006
Именно, просто чтоб было прилично оформлено. Хочу знать на что профессионалы ориентируются
Добавлено спустя 7 часов, 25 минут, 52 секунды
Я хочу док для программеров на фирме. Как им правильно писать код на C++


 

Junior
Статус: Не в сети
Регистрация: 22.07.2006
Типа как http://www.gridlab.org/WorkPackages/tec ... ng_cpp.pdf но по русски.
Добавлено спустя 11 часов, 31 минуту, 52 секунды

Вот написал свой вариант стандарта, буду рад учесть ваши замечания.

Скачать здесь: http://www.cubereality.ho.com.ua/CPPCodingRules.rtf


 

Member
Статус: Не в сети
Регистрация: 28.03.2006
CubeReality
Позволь выразить некоторую критику:

Цитата:
1. Каждое объявление переменной/объекта или типа данных должно в обязательном порядке сопровождаться комментарием.

Если речь идёт об объявлении в классе, то да - лучше всегда. Если у тебя некоторая локальная переменная в функции с именем numberOfCoins скажем, то зачем для неё комментарий, если имя полностью задаёт семантику.
Цитата:
3. Запрещены неявные объявления переменных в любом из возможных вариантов. В частности спецификаторы signed или unsigned должны быть указаны явно.

То есть будешь писать singned int, signed char, забавно :)
Цитата:
1. Члены класса должны всегда иметь префикс m_.

идиотизм :) Я могу лишь сказать такое про enum, для class и struct это вредит, имхо.
Цитата:
5. Избегайте "бесконечных" циклов, прерываемых с помощью break или return.

Совершенно спорный вопрос, ибо в некоторых случаях можно формально доказать, что break или return обязательно выполнится, следовательно можно использовать без угрызения совести.
Цитата:
1. Используйте оператор goto только в крайних случаях. Если кажется, что крайний случай как раз сейчас, еще раз подумайте. Обязательно напишите комментарий к данному оператору goto (в частности укажите место, куда перенаправляет выполнение программы данный оператор с точностью до номера строки)

Смелое допущение :) обычно его никто не разрешает использовать, тем более ни у кого и желания то нет :)
Цитата:
и оператор ?:.

чем плох оператор ? :)
Цитата:
2. Использование рекурсивных функций нежелательно и в случае крайней необходимости их использования должно обширно комментироваться.

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

К остальному претензий не имею , но думаю, другие люди их там найдут обязательно. :)

_________________
Первый огонь был получен людьми из-за перегрева.
Пессимист отличается от оптимиста датой наступления конца света.


 

Member
Статус: Не в сети
Регистрация: 17.06.2005
Откуда: [ХАРЬКОВ]
Цитата:
Обязательно напишите комментарий к данному оператору goto (в частности укажите место, куда перенаправляет выполнение программы данный оператор с точностью до номера строки)

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

_________________
Кольорова крейда це знаряддя деявола!


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
Aside писал(а):
Цитата:
5. Избегайте "бесконечных" циклов, прерываемых с помощью break или return.

Совершенно спорный вопрос, ибо в некоторых случаях можно формально доказать, что break или return обязательно выполнится, следовательно можно использовать без угрызения совести.

Так какая разница где условие выхода: в начале,в середине или в конце цикла? Условие может выполниться или не выполниться в любом случает и это на совести программиста.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Честно говоря не осилил до конца прочесь файл. Но скажу к примеру по своему опыту. Я работал в группах, писали мы и большие и маленькие софты. Когда сменялся программер, то часто было так, что новому разобратся в коде было тяжело, но не невозможно! Мы просто отшивали таких программеров на стадии принятия на работу! Любой нормальный программист, спокойно разберется в коде если этот код был написан нормальным программистом.
Мы чаще всего ставили условия не как оформлять код, а как применять те или иные технологии. К примеру лично я сильно бил по рукам особо рьяных программеров, помешанных на ООП. Так как уже было два больших показательных примера, когда слишком заумное применение ООП приводило к тому, что весь код переписывался по новой. :)
В любом случае в больших группах программистов тон обычно задают главные программисты, которые обычно уже имеют большой опыт программирования в группах. Ну это я конечно в идеале описываю, сами знаете как у нас иногда бывает :) Все как говорится через одно место.

Но в любом случае. Даже в группе их двух человек надо обязательно обговаривать как и что должно писаться. Не надо насильно заставлять делать что-то по другому. Если один любит писать переменные в Венгерской нотации, а другой в другой. То не надо их мучать, пусть только имена дают осмысленные и все :)


 

Member
Статус: Не в сети
Регистрация: 28.03.2006
mein писал(а):
Так какая разница где условие выхода: в начале,в середине или в конце цикла? Условие может выполниться или не выполниться в любом случает и это на совести программиста.

Не понял , к чему вообще сказано про концы и началы. Я имел в виду, что если прог уверен, что не зациклится,то юзать можно.

_________________
Первый огонь был получен людьми из-за перегрева.
Пессимист отличается от оптимиста датой наступления конца света.


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
Aside писал(а):
Я имел в виду, что если прог уверен, что не зациклится,то юзать можно.

Так я именно это и имел ввиду. Сам постоянно пользуюсь конструкцией:
Код:
while(true)
{
...
if() break;
...
}


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 10 
-

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan