Подтвердить что ты не робот

Ссылки на официальные руководства по стилю

С++ имеет несколько типов стилей: MFC, Boost, Google и т.д. Я хотел бы изучить эти стили и определить, какой из них лучше всего подходит для моих проектов, но я хочу прочитать из официального руководства по стилю. Кто-нибудь имеет официальное руководство, которое они обычно используют?

Вот два, которые я нашел. Бьюсь об заклад, есть больше:

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

Боковой вопрос: есть ли хороший инструмент, который может изучить исходный код и сказать, соответствует ли он данному руководству по стилю?

4b9b3361

Ответ 2

Нет такого понятия, как "официальный" стиль руководства - стандарт С++ полностью умалчивает о стиле. Одна книга по этому предмету двумя хорошо известными ребятами из С++ С++ Standards Standards by Sutter and Alexandrescu.

Ответ 3

Я также написал несколько советов по хорошему кодированию в С++:    http://www.ivanism.com/Articles/CodingStandards.html

Сообщение начинается с:

Цель стандартов кодирования - увеличить ценность бизнеса для кода. Самый очевидный (и действительно самый важный) способ сделать это - сделать код надежным и низким дефектом. Не менее важные, но более тонкие цели включают снижение трения кодера и ремонтопригодность. Таким образом, стандарты должны быть минимальными - достаточно простыми, чтобы фактически следовать, и достаточно важными для запоминания.

Эти стандарты должны использоваться при создании новых исходных файлов. Когда необходимо изменить существующий файл, это подходящее время, чтобы довести его до стандарта. Тем не менее, никогда не пришло время редактировать файл, чтобы довести его до стандарта. Если он не сломался, не делайте "исправление" и не забывайте всегда "Держите его в рабочем состоянии".

Вы заметите, что я не касаюсь классических "религиозных" моментов:

 tabs vs. spaces
 indentation style
 curly brace style
 etc...

Консистенция в файле важна и улучшает читаемость. Но также важно, чтобы кодеры выражали себя. Итак, если вы редактируете файл, либо соглашаетесь с религией этого файла, либо конвертируете весь файл в новый, согласованный формат. Если вы конвертируете весь файл, вы фактически овладеете им, поэтому будьте готовы к тому, чтобы быть лицом к лицу или оставить его как есть.

Ответ 5

С++ не имеет и не нуждается в официальном стиле. Многие организации навязывают стилисты своим вкладчикам, чтобы попытаться поддерживать какой-то корпоративный внешний вид; некоторые из них содержат фрагменты полезных советов, но многие просто заставляют вас добавлять странные украшения, которые казались хорошей идеей для кого-то, кто писал совершенно другой язык в 1980-х годах.

Единственный действительно полезный совет, который вы найдете среди вафли:

  • Определите последовательный способ различения типов, объектов и некоторых видов функций (например, аксессуаров и фабрик), поэтому вы будете знать, что нужно писать (например) Thing thing = GetThing();, не ища имена вверх.
  • Не начинайте имена с подчеркивания. Это запрещено в некоторых случаях, и это проще и читабельнее, чтобы не делать этого вообще, чем беспокоиться о том, когда вы можете.
  • Запомните мысль бедному человеку (возможно, вы), который должен читать и поддерживать код через несколько лет.
  • Держите его простым.
  • Используйте свой мозг.

Ответ 6

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

Но в 2015 году Bjarne Stroustrup объявил Основные принципы С++, проект с открытым исходным кодом для создания авторитетных рекомендаций для современного кода на С++, во главе с Сам Страуструп и опубликован Standard С++ Foundation:

http://github.com/isocpp/CppCoreGuidelines

В связи с этим вопросом основные рекомендации также ссылаются на другие рекомендации с добавленными комментариями. О часто рекомендуемом руководстве по стилю Google С++ они говорят:

Предназначен для С++ 03 и (также) более старых базовых кодов. Эксперты Google сейчас активно сотрудничают здесь, помогая улучшить эти Руководящие принципы и, надеюсь, объединить усилия, чтобы они могли быть современным общим набором, которое они также могли бы рекомендовать.

Ответ 7

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

Ответ 8

В сторону вопроса: я лично не знаю каких-либо инструментов, которые анализируют используемый стиль, но есть инструменты, которые переформатируют исходный код для данного руководства по стилю. Один, который приходит на ум, - Художественный стиль.

Ответ 9

Что касается побочного вопроса, то вам нужен инструмент статического анализа. Дорогим и огромным инструментом является Klocwork. Я использовал его в нескольких магазинах, и его можно настроить для выдачи предупреждений о проблемах стиля. Я не рекомендую его для одиночных пользователей; это больше для корпоративной среды. Хотя у них могут быть лишенные версии для отдельных лиц.

Помните Google для инструментов статического анализа.