2008-09-28 2 views
14

Для предстоящего проекта на C++ были предложены следующие.Существующие стандартные стандарты стиля и кодирования

  • C++ Стандарты кодирования, по Sutter и Alexandrescu
  • JSF Air Vehicle C++ стандарты кодирования
  • Элементы стиля C++
  • Эффективное C++ 3rd Edition, Скотт Мейерс

Существуют ли другие варианты? Или список, который должен использоваться в проекте C++?

Некоторые родственные связи

+1

Эффективное использование C++ от Скотт Мейерс ... Эрик Мейер является веб разработан и CSS специалист ... :-p – paercebal 2008-09-28 09:59:35

ответ

7

Я действительно думаю, что это не имеет значения, какой вы принимаете, пока все идет вместе с ней. Иногда это может быть трудно, поскольку кажется, что некоторые стили не согласуются с народами. То есть это сводится к спорам о том, является ли префикс всей переменной-члена m_довольно или нет.

Я использовал и модифицировал стандарты Geosoft, это для C++. Есть и другие в потоке what-is-your-favorite-coding-guidelines-checklist

+0

Черт возьми, я * выбрал * использовать m_, и ** я ** думаю, что это уродливо! – 2008-09-28 10:35:03

5

Хм, странный вопрос. Просто выберите стандарт, с которым знакомы большинство членов команды. Сделайте свой опрос для своей команды. Не знаете, как SO может помочь здесь :)

+0

Я думаю, что вы просто помогли! – 2008-09-28 11:15:27

3

Попробуйте это, это тот, который использует космический центр полета NASA Goddard.

http://software.gsfc.nasa.gov/AssetsApproved/PA2.4.1.3.pdf

+0

Ссылка, которую вы указали, больше не работает, учитывая тот факт, что она была опубликована 7 лет назад !!! вот рабочая ссылка: [Руководство по стилю NASA C++] (http://hdl.handle.net/2060/20080039927) – Ravi 2015-01-20 22:42:07

3

Я написал стандарт кодирования для крупной британской компании и очень сознавал, что объяснял причины, по которым я выбрал определенные вещи, а не просто сделал это кучей произнесений «Ты». (-:

Как быстрый способ, я хотел бы предложить обязательное:

  • Скотт Мейерс эффективен C++ 3rd Edition (Amazon link) - если вы можете найти копию 1-го издания этой книги затем купить он для обзора дизайна OO, который был удален из более поздних выпусков.) -:
  • Книга Скотта Мейера Эффективный STL (Amazon link) - вы должны использовать STL для эффективного использования C++.
  • Книга Стива МакКоннелла Код 2 (Amazon link) - не C++, но полный больших идей.
3

Стандарты кодирования имеют смысл только в том случае, если они помогают вам писать код. Поэтому им просто нужно сохранить код в соответствии (т. Е. Если кто-то ставит m_ для переменных членов, а кто-то этого не делает, может потребоваться больше времени, чтобы получить код, чем если бы все они использовали один и тот же стиль).

Это все, что они (должны) делать, поэтому просто подберите существующий код и убедитесь, что коды команд соответствуют одному и тому же стилю.

Мне нравится думать об этом как о мультфильмах. Если вы станете карикатуристом на Симпсонах, вы должны нарисовать глаза официальным способом или все выглядит брюками, но если вы пойдете к Family Guy, вам придется рисовать их по-другому. Ни один из способов не ошибается.

Слишком много стандартов касаются бессмысленных ограничений, написанных людьми, которые не кодируют себя (или считают себя слишком хорошими, чтобы их поддерживать). Другие пытаются научить вас, как кодировать. Не имеет своего места в хорошем стандарте, это просто упрощает вам просмотр кода и понимание того, что он делает.

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

9

C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ In-Depth Series) Herb Sutter и, Andrei Alexandrescu.

+0

Очень хорошая книга, чтобы создать свой собственный стандарт кодирования, потому что каждая компания отличается, и у них есть шансы, что ваша компания не является Google или NASA. – Nikko 2010-06-04 18:40:04

2

Я согласен с Харальдом Шейрихом, очень важно, чтобы команда согласилась с тем, какими должны быть правила, а не просто собирать набор, рекомендованный посторонними.

Моя личная рекомендация будет заключаться в том, что Стив Макконнелл (Steve McConnell) описывает (из множества других полезных материалов) несколько общих стандартов кодирования и предлагает комментарии к каждому из них. Это может помочь вашей команде в разработке ваших собственных стандартов.

2

Локхид Мартин JSF Air Vehicle C++ Стандарты кодирования является интересным для чтения, но это немного перебор, если вы не работаете в областях, где ошибка может убить людей. Это по-прежнему очень важный пример, чтобы взглянуть с точки зрения компьютерной этики на пример того, как программировать с безопасностью и правильностью, являясь главным приоритетом.

Для кодирования на C++ общего назначения я лично рекомендовал Стандарты кодирования C++ от Herb Sutter. С самого начала он подчеркивает, что не для стандартизации (вещи, относящиеся к стилю или предпочтениям, а не к практике, которая способствует безопасности, правильности, эффективности). Это также относится к самым легким чтениям в вашем списке, дающим очень краткий, но краткий аргумент для каждого стандарта, что делает его проще показать своим сотрудникам.

Смежные вопросы