問題タブ [perl-critic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Perl でコーディング標準を適用するための優れた自動フレームワークはありますか?
私が知っているのは、Perl ::批評家です
そして、私のグーグルは、これまでの複数の試行で結果をもたらしませんでした. :-(
ここで何かお勧めはありますか?
コーディング標準に従って Perl::Critic を構成し、コード ベースで実行するためのリソースをいただければ幸いです。
perl - Perl::Critic: ムース後の生活?
プロジェクトの Moose への変換を開始しましたが、最初に気付いたのは、批評家/きちんとしたテストが地獄に行くことです。Moose、Tidy、Critic は、以前ほどお互いを好きではないようです。
評論家/整頓者がムース方言をより感謝するようにする方法についてのドキュメントはどこにありますか? ほとんどの Moose ユーザーは何をしますか? より重い Moose モジュールの批評家をリラックス/捨てますか? カスタム ポリシー?
regex - / xを使用してPerl正規表現を記述し、コードを読みやすくするためのより良い方法はありますか?
スクリプトの1つでPerl::Criticを実行すると、次のメッセージが表示されます。
ここでポリシー情報を調べましたが、拡張モードで正規表現を作成すると、コードを見ている人に役立つことを理解しています。
ただし、/xフラグを使用するようにコードを変換する方法として立ち往生しています。
CPANの例:
これは、正規表現だけを見る場合に意味があります。
私のコード:
ifステートメント内で拡張正規表現を使用する方法が正確にはわかりません。私はそれをこのように書くことができます:
そして、これは機能しますが、これはオリジナルよりもほとんど読みにくいと思います。これを書くためのより良い方法(またはベストプラクティスの方法)はありますか?qr//を使って変数を作成できると思います。
私はこの特定の正規表現を書き直すことについてのアドバイスを本当に探していません(ただし、改善できる場合はアドバイスを受け取ります)-ifステートメント内で正規表現を拡張する方法についてのアドバイスをもっと探しています。
Perl :: Criticは単なるガイドラインですが、それに従うとよいでしょう。
前もって感謝します!
編集: いくつかの回答を受け取った後、コメント付きの正規表現を複数行にする必要は必ずしもないことがわかりました。基本的な正規表現を理解している人は、私の例が何をしているかを理解できるはずです。私が追加したコメントは、おそらく少し不必要で冗長でした。拡張正規表現フラグを使用するというアイデアは気に入っていますが、正規表現の各部分をもう少し明確にするために、正規表現にスペースを埋め込みます。すべての入力をありがとう!
perl - Perl::Tidy や Perl::Critic を使用してサイド コメントをキャッチするにはどうすればよいでしょうか?
私の部門は現在、いくつかの一般的なコードのベスト プラクティスを決定していPerl::Tidy
ますPerl::Critic
。
現在、サイドコメントに問題があります。サイドコメントは次のとおりです。
ほとんどの場合、サイド コメントは問題のコードの上に記述できるため、サイド コメントはより読みやすくなります。可能な限り、Perl::Tidy
解決策は完璧です。これは、サイドコメントをその上の行に移動し、2番目に良いのはPerl::Critic
ポリシー(CPANでも見つけられませんでした)であり、3番目と最後は開発者です。コードレビューを行う際に、これらのコメントを指摘するように注意してください。
またはで実装することは可能ですPerl::Tidy
かPerl::Critic
?
perl - WindowsのKomodoIDE5.1でPerlCriticサポートを有効にするにはどうすればよいですか?
KomodoでPerlCriticサポートを有効にしようとしています。
Komodo IDE 5.1(Win 32)のメーカーであるActiveStateからの公式の言葉は次のとおりです。
「PerlCriticサポートを有効にするには、「Perl-Critic」および「criticism」モジュールをインストールしてください。」
さて、Perl-Criticのインストールは簡単でした:
しかし、私はPPM4のすべてのリポジトリ(trouchelleと通常の容疑者)を検索しましたが、「批評」と呼ばれるモジュールがないようです。私はCPANとPPMを使用して多くのモジュールをインストールしましたが、このモジュールはこれまでで最もとらえどころのないものであることがわかりました。ここで何かが足りませんか?
WindowsのKomodo5.1でPerlCriticサポートを有効にする運があった人はいますか?お返事待ってます。この機能はMacOSとLinuxで完全に機能しますが...うーん。
perl - ファイルハンドルを使用して複数行の文字列を処理するときに、Perl :: Critical警告を回避するにはどうすればよいですか?
以下に示すファイルハンドルとしての文字列の解決策以外に、一度に1行ずつ複数行の文字列を処理するタスクの解決策を持っている人はいますか?
ファイルハンドルを使用したくない理由はかなり弱いです。Test :: Perl :: Criticは、ファイルハンドルのopenコマンドとcloseコマンドの間に10を超えるソース行があると泣き言を言います。$ single_lineの処理をかなり行っているので、実際には、オープン呼び出しとクローズ呼び出しの間に約40行のコードがあり、それを10に下げる方法がわかりません。
また、ビルドでPerl :: Criticalテストを無視したくありません。これは、コードで実際のディスクファイルを開くたびに合格したい、まともなテストだからです。
perl - Win32::OLE->LastError への呼び出しでエラーをトラップする必要がありますか?
[編集] - 後知恵の恩恵により、この質問は誤った方向に向けられました。Perl::Criticによるeval の誤った使用と正しい批評の良い例であるため、削除していません。
Perl Critic は、以下のコードに対して次のような批判を提起しています。
テストされていない eval の戻り値。の値に依存して
$@/$EVAL_ERROR
、評価が失敗したかどうかを判断することはできません
私の考えではeval
、エラーオブジェクトの存在を検出し、Win32:OLE
モジュールでエラーを検出して報告するために使用しています。
批判を無視しても安全ですか?
perl - Test :: Perl :: Criticを並行して実行するにはどうすればよいですか?
Test :: Perl :: Criticに基づいた簡単なテストケースを作成しました。これcritic
は、リポジトリ内のすべてのソースファイルで実行されます( all_critic_ok
)。ただし、特にPerl :: Tidyポリシーも使用しているため、このテストには長い時間がかかります。
通常、異なるファイルを批評することは他の批評家に依存しないので、私はそれらのテストを並列化できると思いました。結局のところ、TAP :: Harnessは実際にテストを並列化できますが、テストごとではなく、ファイルごとにのみ並列化できます。
これらのテストをどのように並列化しますか?どんな回避策でもかまいません。
c - PPIやPerl::Critic for Cのようなものはありますか?
PPIとPerl::Criticを使用すると、プログラマーはPerlプログラムの構文で特定のものを検出できます。
Cをトークン化/解析し、その情報を使用して何かを行うためのスクリプトを作成する機会を与えるようなものはありますか?
perl - Perl::Critic を EPIC と Eclipse で動作させるにはどうすればよいですか?
WinXP SP3で、EPIC 0.5.46およびActiveState ActivePerl 5.10.0でEclipse Galileoを実行しています。
パッケージマネージャーを使用してPerl::Criticをダウンロードし、適切なプロパティページを使用してEclipseに統合しました。
Perl::Critic は、Eclipse のソース コンテキスト メニューから問題なく実行できます。それは実行されます。しかし、Eclipse のソース コードにマーカーを配置しません。つまり、結果が表示されません。(私の Perl はそれほど良くありません。)
RTFMに教えてくれたら、RにどのFMを指摘してください。