Существуют ли хорошие автоматизированные платформы для применения стандартов кодирования в Perl?

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

Вопрос

Я знаю, что это Perl::Критик

И мой поиск в Google пока не дал результатов.:-(

Есть ли у кого-нибудь здесь какие-либо рекомендации?

Будем признательны за любые ресурсы для настройки Perl::Critic в соответствии с нашими стандартами кодирования и запуска его на базе кода.

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

Решение

Что касается настройки профиля, пробовали ли вы perlcritic --profile-proto?Это выведет на стандартный вывод все установленные вами политики со всеми их параметрами и описаниями обоих, включая их значения по умолчанию, в формате perlcriticrc.Сохраните и отредактируйте в соответствии с тем, что вы хотите.Всякий раз, когда вы обновляете Perl::Critic, вам может потребоваться снова запустить эту команду и выполнить сравнение с текущим perlcriticrc, чтобы вы могли видеть любые изменения в существующих политиках и выбирать любые новые.

Чтобы регулярно запускать perlcritic, настройте Тест::Perl::Критик тест вместе с остальными тестами.Это хорошо для нового кода.

Для вашего существующего кода используйте Тест::Perl::Критик::Прогрессивный вместо.T::P::C::Progressive завершится успешно при первом запуске, но сохранит количество нарушений;после этого T::P::C::Progressive будет жаловаться, если какой-либо из счетчиков увеличится.На что следует обратить внимание, это когда вы отменяете изменения в вашей системе управления версиями.(Вы его используете, не так ли?) Допустим, я проверяю изменение и запускаю тесты, и мои изменения уменьшают количество нарушений P::C.Позже выясняется, что мое изменение было плохим, поэтому я возвращаюсь к старому коду.Тест T::P::C::Progressive завершится неудачей из-за уменьшения количества.На этом этапе проще всего просто удалить файл истории (расположение по умолчанию t/.perlcritic-history) и запустить его снова.Он должен воспроизвести ваши старые значения, и вы можете написать что-то новое, чтобы снова их снизить.

Perl::Critic имеет множество политик, поставляемых вместе с ним, но существует множество дополнительных дистрибутивов политик.Посмотри на Задача::Perl::Критик и Task::Perl::Critic::IncludeOptionalDependities.

Вам не обязательно иметь один perlcriticrc, обрабатывающий весь ваш код.Создайте отдельные файлы perlcriticrc для каждого набора файлов, которые вы хотите протестировать, а затем отдельный тест, указывающий на каждый из них.В качестве примера взгляните на авторские тесты для самого P::C по адресу: http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/.При запуске авторских тестов есть тест, который проверяет весь код P::C, второй тест, который применяет дополнительные правила только к политикам, и третий, который критикует тесты P::C.

Лично я считаю, что каждый должен работать на «жестоком» уровне строгости, но исключать те политики, с которыми они не согласны.Perl::Critic не полностью самосовместим;даже разработчики P::C не согласны со всем, что говорит Конвей.Посмотрите файлы perlcriticrc, используемые в самом Perl::Critic, и найдите в коде Perl::Critic экземпляры «## no Critic»;Сейчас я насчитываю 143 человека.

(Да, я один из разработчиков Perl::Critic.)

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

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

В дополнение к «автоматизированным фреймворкам» я настоятельно рекомендую Дамиана Конвея. Лучшие практики Perl.Я не согласен на 100% с тем, что он предлагает, но в большинстве случаев он ошибается.

Нравиться:

Похоже, хороший инструмент!

В посте выше упоминается Разв.::Проф вероятно, действительно означает Девел::Обложка (чтобы получить покрытие кода набора тестов).

Хорошая комбинация — это perlcritic с EPIC для Eclipse — нажмите CTRL-SHIFT-C (или предпочитаемый вами настроенный ярлык), и ваш код будет отмечен предупреждающими индикаторами везде, где perlcritic найдет что-то, на что можно пожаловаться.Гораздо приятнее, чем не забывать запускать его перед регистрацией.И, как это обычно бывает с perlcritic, он подберет ваш .perlcriticrc, чтобы вы могли настроить правила.Мы храним наш .perlcriticrc под контролем версий, чтобы у всех были одинаковые стандарты.

Помимо косметических рекомендаций, я всегда считаю полезным запустить Devel::Prof в моем наборе модульных тестов, чтобы проверить покрытие тестами.

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