Ответ 1
Не руководство по кодированию как таковое, но я считаю это полезным: Bjarne Stroustrup С++ Стиль и техника Часто задаваемые вопросы
С++ имеет несколько типов стилей: MFC, Boost, Google и т.д. Я хотел бы изучить эти стили и определить, какой из них лучше всего подходит для моих проектов, но я хочу прочитать из официального руководства по стилю. Кто-нибудь имеет официальное руководство, которое они обычно используют?
Вот два, которые я нашел. Бьюсь об заклад, есть больше:
Примечание. Это НЕ обсуждение того, какой стиль лучше всего... только призыв к официальным руководствам по стилю, которые люди используют в настоящее время. Пожалуйста, воздержитесь от избиения других руководств по стилю, которые вам не нравятся.
Боковой вопрос: есть ли хороший инструмент, который может изучить исходный код и сказать, соответствует ли он данному руководству по стилю?
Не руководство по кодированию как таковое, но я считаю это полезным: Bjarne Stroustrup С++ Стиль и техника Часто задаваемые вопросы
Нет такого понятия, как "официальный" стиль руководства - стандарт С++ полностью умалчивает о стиле. Одна книга по этому предмету двумя хорошо известными ребятами из С++ С++ Standards Standards by Sutter and Alexandrescu.
Я также написал несколько советов по хорошему кодированию в С++: http://www.ivanism.com/Articles/CodingStandards.html
Сообщение начинается с:
Цель стандартов кодирования - увеличить ценность бизнеса для кода. Самый очевидный (и действительно самый важный) способ сделать это - сделать код надежным и низким дефектом. Не менее важные, но более тонкие цели включают снижение трения кодера и ремонтопригодность. Таким образом, стандарты должны быть минимальными - достаточно простыми, чтобы фактически следовать, и достаточно важными для запоминания.
Эти стандарты должны использоваться при создании новых исходных файлов. Когда необходимо изменить существующий файл, это подходящее время, чтобы довести его до стандарта. Тем не менее, никогда не пришло время редактировать файл, чтобы довести его до стандарта. Если он не сломался, не делайте "исправление" и не забывайте всегда "Держите его в рабочем состоянии".
Вы заметите, что я не касаюсь классических "религиозных" моментов:
tabs vs. spaces
indentation style
curly brace style
etc...
Консистенция в файле важна и улучшает читаемость. Но также важно, чтобы кодеры выражали себя. Итак, если вы редактируете файл, либо соглашаетесь с религией этого файла, либо конвертируете весь файл в новый, согласованный формат. Если вы конвертируете весь файл, вы фактически овладеете им, поэтому будьте готовы к тому, чтобы быть лицом к лицу или оставить его как есть.
Другим руководством по стилю являются стандарты кодирования JSF для летательных аппаратов C++.
С++ не имеет и не нуждается в официальном стиле. Многие организации навязывают стилисты своим вкладчикам, чтобы попытаться поддерживать какой-то корпоративный внешний вид; некоторые из них содержат фрагменты полезных советов, но многие просто заставляют вас добавлять странные украшения, которые казались хорошей идеей для кого-то, кто писал совершенно другой язык в 1980-х годах.
Единственный действительно полезный совет, который вы найдете среди вафли:
Thing thing = GetThing();
, не ища имена вверх.В других ответах утверждается, что нет официального руководства по стилю, которое было истинным в то время.
Но в 2015 году Bjarne Stroustrup объявил Основные принципы С++, проект с открытым исходным кодом для создания авторитетных рекомендаций для современного кода на С++, во главе с Сам Страуструп и опубликован Standard С++ Foundation:
http://github.com/isocpp/CppCoreGuidelines
В связи с этим вопросом основные рекомендации также ссылаются на другие рекомендации с добавленными комментариями. О часто рекомендуемом руководстве по стилю Google С++ они говорят:
Предназначен для С++ 03 и (также) более старых базовых кодов. Эксперты Google сейчас активно сотрудничают здесь, помогая улучшить эти Руководящие принципы и, надеюсь, объединить усилия, чтобы они могли быть современным общим набором, которое они также могли бы рекомендовать.
Я использую свой собственный стиль, который Я написал здесь. Независимо от того, интересуетесь ли вы им как стилем, если вы смотрите на стили в целом, вы можете найти мое обсуждение мотивации для его использования.
В сторону вопроса: я лично не знаю каких-либо инструментов, которые анализируют используемый стиль, но есть инструменты, которые переформатируют исходный код для данного руководства по стилю. Один, который приходит на ум, - Художественный стиль.
Что касается побочного вопроса, то вам нужен инструмент статического анализа. Дорогим и огромным инструментом является Klocwork. Я использовал его в нескольких магазинах, и его можно настроить для выдачи предупреждений о проблемах стиля. Я не рекомендую его для одиночных пользователей; это больше для корпоративной среды. Хотя у них могут быть лишенные версии для отдельных лиц.
Помните Google для инструментов статического анализа.