IntelliJ IDEA、ReSharper、SonarLint、SonarQubeはPVS-Studioと同じエラーを検出します。PVS-Studioが必要なのはなぜですか?

写真1 時々、人々は、一見すると、あることについてであるが、実際には別のことについての質問をします。 彼らが言うように、適切な質問には答えの半分が含まれています。



先日、私はJPoint会議から戻ってきました。 この会議では、Java用の新しいPVS-Studioアナライザーが最初に導入されました。 ここ数年、静的解析への関心が急速に高まっているため、聴衆はPVS-Studioを大々的に取り上げました。 もちろん、肯定的なフィードバックに加えて、私は反対意見に取り組む必要がありました。 PVS-Studioを試用するという申し出に対する最も頻繁な異議は次のとおりです。 IntelliJ IDEA、ReSharper、SonarLint、SonarQubeを使用します。 そこで、最近PVS-Studioを立ち上げましたが、彼はIntelliJ IDEAがすでに強調しているエラーを発見しました!」



私はこのコメントに対して小さなメモ応答を書かずにはいられません。 より正確には、この異議に対して2つの答えさえあります。 そして、はい、ここでReSharperを具体的に指摘しました。そのような質問はC#のアナライザーにも当てはまるからです。 さて、喜んでお答えします。



まず、競合他社の診断をコピーしてPVS-Studioを実行しません。 本質を理解せずに盲目的にコピーすることはどこにもつながりません。 静的コード分析の価値、その診断の価値は、エラーをスローする場所ではありません。 そして、それが発行されるべきではない場所。 各診断について、トリガーする必要がない場合、10、20、またはそれ以上の例外があります。 ドキュメントの説明に従ってのみ他の製品から診断をコピーすることは、1枚の写真を使用して同じ建物を建設しようとするようなものです。 コロッセオの写真は、突然「神々があなたに同じものを作らなければならない」場合に役立ちますか?



したがって、コピーすることはありません。 「しかし、あなたは同じ診断を持っています!」とあなたは言います。 もちろんあります。 多くの間違いのアイデアは表面にあります。 これは絶対に明らかです。 ただし、多くの場合、同じ説明の診断でも動作が異なります。



つまり、ヘッダーに示されている製品のいずれかを使用する場合、PVS-Studioを起動すると、他の製品では検出されない多数の新しいエラーが見つかる可能性が非常に高くなります。 これは、お客様の経験と、開いているプロジェクトを確認する経験から確認できます。



第二に、IntelliJ IDEA、ReSharper、およびSonarLint / SonarQubeを使用していて、PVS-Studioと同じエラーがコードで見つかった場合でも、悪いニュースがあります。 エラーを検出するツールを使用します、OK。 しかし、PVS-Studioがこれらのすべてのツールで検出されたと思われるコードのバグを検出するのはなぜですか? 「PVS-Studioがすべてを見つけるように」ツールを使用すると、エラーが修正されないのはなぜですか? たぶん、これらのツールはそれらを編集しないことを許可しますか?



IntelliJ IDEA、ReSharper、およびSonarLubeとSonarQubeは、どちらも非常に優れたツールです。 彼らは非常に資格のあるチームによって作られています。 そして、あなたがそれらを使うなら、あなたはすべて正しいことをしています。 プロジェクトのエンジニアリング文化のレベルが高いほど、ビジネスに適しています。



しかし、これらすべてのツールが「PVS-Studioと同じエラーを検出」し、エラーがまだコードにある場合、何か間違ったことをしていることになります。 PVS-Studioの定期的な使用などのチームプラクティスを実装します。 そして、エラーが見つかるだけでなく、修正されます。 PVS-Studioの実装により、開発者はエラーを修正する必要があります。 そしてそれらを見つけるだけではありません。











英語を話す聴衆とこの記事を共有したい場合は、翻訳へのリンクを使用してください:Evgeniy Ryzhkov。 IntelliJ IDEA、ReSharper、SonarLint、SonarQubeは、PVS-Studioと同じエラーを検出します。PVS-Studioが必要なのはなぜですか?



All Articles