Perl :: Критик: Жизнь после лося? - PullRequest
18 голосов
/ 18 сентября 2008

Я начал преобразование проекта в Moose, и первое, что я заметил, было то, что мои тесты критики / опрятности идут в ад. Кажется, лось, Тиди и Критик не любят друг друга так, как раньше.

Есть ли где-нибудь документы о том, как заставить критиков / опекунов быть более благодарными диалекту Муз? Что делают большинство пользователей Moose? Расслабляющий / угробленный критик для более тяжелых модулей Moose? Пользовательские политики?

Ответы [ 4 ]

15 голосов
/ 22 мая 2009
6 голосов
/ 19 сентября 2008

В более ранних версиях Perl :: Critic "строгая политика" не была известна Moose разрешает строгий режим для вас, но это будет исправлено, если вы обновитесь Perl :: Критик.

Я использую оба Perl :: Critic и Perl :: Tidy с Moose, и я не вижу ничего особо сломанного. Ну, вообще-то, я не могу получить Perl :: Tidy чтобы правильно расположить такие вещи:

my $apple = Apple->new({
    color => "red",
    type  => "delicious",
});

Тиди будет настаивать, что (и {два начальных уровня отступа, и это будет выглядеть глупо:

my $apple = Apple->new({
        color => "red",
        type  => "delicious",
});

Но у нас была эта проблема раньше; соглашение о кодировании в проекте это использовать хеш-реф, а не хэш, для именованных параметров. Так что это не действительно проблема, связанная с Moose, как таковая.

Каковы ваши симптомы?

/ J

6 голосов
/ 18 сентября 2008

Оба они могут быть настроены в деталях.

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

Я не знаю, какие проблемы возникают у perlcritic с ним (возможно, lvalue-методы?), Но вы можете отключить эти конкретные политики с помощью файла .perlcriticrc. Кроме того, если ваш perlcritic старый, вы можете обновить его, так как некоторые старые версии выдавали неверные ошибки в классах Moose.

3 голосов
/ 18 сентября 2008

У меня нет проблем с критическими тестами - по общему признанию, я выполняю со степенью серьезности = 3, по крайней мере частично, потому что кое-что, с чем я должен работать, является устаревшим кодом, который я не имею / время / убирать, но мой Moose через это все плывет.

...