Существующие стандартные стандарты стиля и кодирования

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

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

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

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

Ответ 1

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

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

Ответ 3

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

Ответ 6

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

Как быстрый выход, я предлагаю указать:

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

Ответ 7

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

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

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

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

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

Ответ 8

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

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

Ответ 9

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

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

Ответ 11