C#、PVS-Studio、ReSharper

「ReSharperが既に使用されている場合、PVS-Studioコードアナライザーを使用するのは理にかなっていますか?」という質問が常に寄せられています。 答えは、プログラムのエラーを検出する際のこれらのツールの機能を比較する記事であるべきだと理解されています。 これは行き止まりであり、そのような記事は何もしないことを知っています。 ただし、質問は頻繁に行われるため、回答が必要です。 答えはイエスです、それは理にかなっています。 この記事では、予想される比較が見つからないことをすぐに警告します。 ただし、この記事を完全に読むのに10分しかかからない場合は、答えとビジョンに同意していただけると確信しています。



PVS-Studioは、C、C ++プログラムのコードのエラーを検出する静的コードアナライザーです。 最近、アナライザーは新しいフィールド-C#をマスターしました。 歴史的に、ReSharperはC#のヘルパーツールの中で君臨していました。 このツールは生産性ツールのカテゴリに属し、古典的な意味では静的コードアナライザーではありません。 ただし、ReSharperはさまざまなチェックを実行し、コードの疑わしいセクションに色を付けることができます。 したがって、プログラマに対する疑問は必然的に生じます。「ReSharperを既にお持ちの場合、PVS-Studioに目を向けることは理にかなっていますか?」



回答:はい! この答えは確かです。 しかし、ここでは、機会を比較する単純な記号でこれを正当化することは不可能です。 そのような兆候が問題にならないようにしてください。 しかし、詳細な比較を行うことを誓いました。 人生が示すように、そのような比較を書くことは、それを改善するのではなく、むしろカルマを台無しにします。



たとえば、PVS-StudioとCppcheckおよびVisual Studio SCAを比較した経験があります。 多くの時間と労力が費やされました。 結果は、 簡潔詳細なバージョンで提示されました。 その後、怠zyな人だけが、私たちがすべて間違ったことを書いたり、検証のために特別に選択されたプロジェクトのおかげで比較が不公平であると書いたりしませんでした。



このような比較に時間を無駄にする理由はもうありません。 どれほど慎重かつ正直に彼にアプローチしても、比較には偏りがあったと言うことができます。



ただし、ReSharperについて尋ねる人に何か答える必要があります。 優れた比較オプションを提供できます。



すでにReSharperを使用していますか? いいね! PVS-Studioをインストールして、プロジェクトのエラーを見つけてください!



これは、PVS-Studioを使用する利点の最良のデモンストレーションです。 ところで、反対はありません。 ツールは互いに完全に補完できます。



読者は言うだろう-さて、新しいツールは痛くないだろう。 しかし、C#ツール市場に参入できますか? ここでは、すべてが長い間占有され、分割されています。 誰かがC#用のPVS-Studioを必要としますか? 開始するには、答えは次のとおりです。



死の確実性、成功の小さなチャンス。私たちは何を待っていますか?



確かに死。成功の可能性はない。だから、私たちは何を待っているのか!? 」( en )。



実際、「PVS-Studioアナライザーは必要ですか?」という質問にすでに直面しています。 この質問は、PVS-Studioアナライザーが若く、C ++プログラマの間で人気を得る必要があったときに聞こえました。 既に存在しているため、別のツールの外観には意味がありません。
  1. 静的アナライザーの機能を実装するコンパイラー。 たとえば、Visual Studioの一部のエディションには、静的なC ++コードアナライザーが含まれています。 それでも、たとえば、Clangがあります。
  2. Cppcheckのような無料のコードアナライザーがあります。
  3. Coverity、Klocworkなどの強力な有料ツールがあります。


それでは、「PVS-Studio for C ++」が必要なのはなぜですか? そして、私たちはこの質問に答えることができませんでした。 今答えるべきことは何もありません。 しかし、この質問はもはや重要ではありません。 PVS-Studioアナライザーがもたらす利点を簡単に実証できます。



他のツールがあるかないかにかかわらず、これ以上の違いはありません。 私たちはプログラムに何千ものエラーを発見しましたが、そこには証拠書類があります 。 他のツールが存在するにもかかわらず、これらのエラーを発見しました。 競争上の利点について話すことができる限り。 しかし、私たちは興味がありません。 Chromium、Qt、LibreOffice、TortoiseSVN、Unreal Engine 4などのプロジェクトで見つかった9355個のエラーを次に示します。



さらに、特定のツールとの比較が必要な場合にリンクを提供できるようになりました。

C#アナライザーでは、この旅の始まりに過ぎません。 控えめに宣言することもできますが:

少し待って、比較の質問が消えます。 いいえ、待ってはいけません。 アナライザーを使用できますし、使用する必要があります。 彼を若くしてみましょう。これまでのところ、計画された診断のほんの一部しか実装していません。 しかし今、彼は利益を得ることができます。 コンパイル後に自動検証を試してください。 楽しんでいただければ幸いです。 何かが間違っている場合- 書き込み 、私たちは非常に積極的にレビューや提案に取り組んでいます。



結果 。 ReSharperを使用するかどうかに関係なく、PVS-Studioアナライザーをダウンロードして試してみることができます。 彼があなたのプロジェクトでエラーを見つけた場合、これは彼の有用性の最高の証拠になります。 単一のチェックが意味をなさないことを忘れないでください。 コードアナライザーの利点は、定期的に使用する場合のみです。 アナライザーがこれを行うことができる場合、コードをデバッグしてタイプミスやエラーを探すのは非効率的です。 もちろん、彼はすべての間違いを見つけることはできませんが、その状態でタイプミスを見つけるよりも、もっと役立つことで多くの時間を節約できます。



All Articles