2008-09-09 11 views
9

私が知っている人Perl::CriticPerlでコーディング標準を適用するための優れた自動フレームワークはありますか?

そして私のグーグルではこれまでに何度も試した結果が出てこなかった。 ?。:-(

、誰もがここに勧告していないすべてのリソース

を私たちのコーディング標準に従ってたPerl ::評論家を設定していただければ幸いコードベース上でそれを実行するために

+0

「稼働中」とはどういう意味ですか? – svrist

+0

"Up and running"とは、私の必要に応じて評論家を構成することです(私はPerl :: Critic :: Configがあると知っていますが、perlコーダーであり、非常に怠け者です:))私のコードベース。私は質問を更新します。 – Jagmal

答えて

12

プロファイルの設定に関して、perlcritic --profile-protoを試しましたか?これはインストールされたすべてのポリシーをすべてのオプションでstdoutに出力し、デフォルト値を含めて両方の説明をperlcriticrc形式で出力します。必要なものに合わせて保存して編集します。 Perl :: Criticをアップグレードするたびに、このコマンドを再度実行して、現在のperlcriticrcでdiffを実行して、既存のポリシーの変更を確認して新しいポリシーを取得することができます。

perlcriticを定期的に実行する観点からは、残りのテストと一緒にTest::Perl::Criticテストを設定してください。これは新しいコードに適しています。

既存のコードの代わりにTest::Perl::Critic::Progressiveを使用してください。 T :: P :: C :: Progressiveは、初めて実行するときには成功しますが、違反回数をカウントします。その後、T :: P :: C :: Progressiveはカウントのいずれかが上がった場合に不平を言います。あなたのソース管理システムの変更を元に戻すときには、注意が必要です。 (あなたは1つ使用していますか?)変更をチェックインしてテストを実行し、変更がP :: C違反の数を減らしたとします。後で、私の変更が悪いことが判明したので、古いコードに戻ります。 T :: P :: C ::プログレッシブテストは、カウントが減少したために失敗します。この時点で最も簡単なことは、履歴ファイル(デフォルトの場所t/.perlcritic-history)を削除して再度実行することです。それはあなたの古いカウントを再現し、新しいものを書いてそれらを再びダウンさせることができます。

Perl :: Criticには多くのポリシーがありますが、ポリシーのアドオン配布がたくさんあります。 Task::Perl::Critic Task::Perl::Critic::IncludingOptionalDependenciesをご覧ください。

すべてのコードを1つのperlcriticrcで処理する必要はありません。テストするファイルのセットごとに別々のperlcriticrcファイルを作成し、それぞれのファイルを指す個別のテストを作成します。たとえば、P :: Cの作成者テストをhttp://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/に見てみましょう。著者テストが実行されると、P :: Cのすべてのコード、ポリシーだけで追加ルールを適用する2番目のテスト、P :: Cのテストを批判する3番目のテストが実行されます。

私は個人的に誰もが "残忍な"重大度で動くべきだと思っていますが、同意しない方針をノックアウトするべきです。 Perl :: Criticは完全に自己適合性ではありません。 P :: C開発者でさえ、コンウェイの言葉には同意できません。 Perl :: Critic自体で使われているperlcriticrcファイルを見て、Perl :: Criticコードで "## no critic"のインスタンスを探してください。私は現在143を数えます。

(はい、私は、Perl ::評論家の開発者の一人です。)化粧品のベストプラクティスに加えて、私はいつもそれが役に立つ確認するために私のユニットテストスイートにDevelの::教授を実行するために見つける

5

ほとんどの文章の標準ではperltidyがあります。を使用すると、perlcriticを簡単に設定できます。私は個人的にレベル1でそれを使用しますが、私はいくつかのポリシーを無効にしました。

4

「自動化されたフレームワーク」に加えて、Damian ConwayのPerlベストプラクティスを強くお勧めします。私は彼が提案したものの100%に同意しないが、ほとんどの時間彼は叩きつけている。

1

Eclipse用のEPICでperlcriticを使用しています - CTRL-SHIFT-C(または設定済みのショートカット)を使用すると、perlcriticが何か不平を感じたときはいつでもコードに警告が表示されます。チェックインする前にそれを実行することを覚えておくよりもはるかに良い。 perlcriticで普通のように、それはあなたのルールをカスタマイズできるように.perlcriticrcを拾い上げます。 .perlcriticrcをバージョンコントロールに保ち、誰もが同じ標準を取得できるようにします。

0

テストカバレッジ

2

Devel::Profという上記の投稿は、実際にはDevel::Cover(テストスイートのコードカバレッジを取得すること)を意味します。

関連する問題