Тестирование правил кодирования и именования кода C / C ++ - PullRequest
8 голосов
/ 04 апреля 2010

Я ищу скрипт / инструмент, который можно настроить для проверки и обеспечения соблюдения соглашений о кодировании / именовании в коде C / C ++.

Следует проверить, например:

  • Строки кода переносятся на определенную длину.
  • Приватные переменные имеют префикс _
  • Код введен с отступом.
  • Все функции документированы.

Многие проекты, над которыми я работаю, выполняются сторонними заказчиками, которые, как правило, имеют различные соглашения о внутреннем кодировании и наименовании.

Ответы [ 6 ]

3 голосов
/ 04 апреля 2010

Универсальный отступ оборачивает множество инструментов отступов в приятный графический интерфейс. Если что-то подходит вам, это, вероятно, включено. ( Здесь - список функций). Поддерживаются все основные ОС.

Есть и другие инструменты, проверяющие другие вещи:

пух для безопасности и прочего.

Для программ Qt вы можете использовать Krazy . Найти, загрузить и запустить его довольно сложно, поскольку он скрыт в недрах дерева исходных текстов KDE (подкаталоги обеспечения качества ... где-то). Но однажды работая, это действительно круто. Он проверяет все виды симпатичных вещей. Как неиспользуемые заголовки Qt. Плохое использование строк. Отсутствуют выражения tr () для видимых пользователем строк, странные итерационные конструкции, точка-точка-точка.

Само собой разумеется, что все упомянутые инструменты можно настраивать.

3 голосов
/ 04 апреля 2010

Не знаю, действительно ли оно того стоит, но если вы действительно хотите, вы можете попробовать создать что-то похожее на gpp's cpplint , который проверяет их руководство по стилю .

Лично я считаю, что тщательный анализ и приверженность людей соблюдению определенных соглашений - это гораздо лучший способ убедиться, что ваш код «имеет правильные отступы» и переменные имена называются последовательно. Возможно, вложите средства в создание документа, подобного тому, как это сделал Google, с описанием деталей приемлемого стиля, и пусть люди в вашей компании примут его и будут его придерживаться.

Почему люди лучше сценария? Ответ довольно прост: людям придется иметь дело с кодом позже, они должны заботиться о том, что они пишут. Имя переменной, например i, подойдет для сценария, но оно не выскользнет у меня из глаз, если это clientCount, его следует просто назвать соответствующим образом, сценарий, который сможет выполнить, который может занять Мир скорее скоро. :)

2 голосов
/ 04 апреля 2010

Инструмент GNU indent может сделать то, что вы просите. Не уверен, что сможет проверить документацию, но все остальное звучит выполнимо

1 голос
/ 04 апреля 2010

В основном то, что говорили другие люди. Но могу ли я просто указать, что:

  • Все функции документированы.

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

//-------------------------------------------------------------
// Name: foo
// Purpose: 
// Returns: integer
//-------------------------------------------------------------

Другими словами, шаблонная «документация», которая говорит вам меньше, чем ничего. Такого рода вещи могут быть уничтожены только обзорами кода.

0 голосов
/ 04 июля 2010

Я использую Understand 4 c ++ от scitools. Он поставляется с Perl и C api. Однако я написал управляемый API для него. Этот инструмент позволяет вам сканировать ваш исходный код и анализировать его, как рефлексия для собственного кода. Это работает очень хорошо, позволяя вам получить имена ваших переменных, классов и т. Д. Я лично написал десятки инструментов статического анализа в работе с использованием этого API. Было бы легко внедрить все виды стандартов кодирования с помощью этого инструмента. Особенно стандартное имя переменной.

Ссылка на товар: http://www.scitools.com/ и мой управляемый упаковщик: http://understandapi.codeplex.com/

0 голосов
/ 04 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...