Существующие стандартные документы по стилю и кодированию [закрыто]

StackOverflow https://stackoverflow.com/questions/145570

Вопрос

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

  • Стандарты кодирования C++, Саттер и Александреску
  • Стандарты кодирования JSF Air Vehicle C++
  • Элементы стиля C++
  • Эффективный C++, 3-е издание, Скотт Мейерс

Есть ли другие варианты?Или приведенный выше список следует использовать в проекте C++?

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

Это было полезно?

Решение

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

Я использовал и модифицировал Геософт стандарты на какое-то время, это для C++.Есть еще некоторые на контрольный список-рекомендаций-кодирования-ваш любимый нить

Другие советы

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

Попробуйте этот, его использует Центр космических полетов имени Годдарда НАСА.

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

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

В качестве быстрого выхода я бы предложил обязать:

  • Скотт Мейерс «Эффективный C++, 3-е издание» (ссылка на амазон) — если вы можете найти копию первого издания этой книги, купите ее, чтобы получить обзор объектно-ориентированного дизайна, который был удален из более поздних изданий.)-:
  • Книга Скотта Мейера «Эффективный STL» (ссылка на амазон) — для эффективного использования C++ необходимо использовать STL.
  • Книга Стива МакКоннелла «Code Complete 2» (ссылка на амазон) — не специфичный для C++, но полный замечательных идей.

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top