質問

  • ソースコードアナライザーを使用していますか?そうである場合、どの言語開発のためにどの言語を使用しますか?
  • コードの潜在的なバグの解決に役立つと思いますか?それとも、ほとんどの警告は些細なことですか?
  • 長期間使用した後、コードの品質は以前よりも高くなっていますか?
役に立ちましたか?

解決

Javaでいくつかの静的分析ツールを使用しています。 FindBugs は、多くの一般的なエラーをキャッチし、非常に有用なフィードバックを提供する最前線です。疲れたプログラマのばかげた間違いを見つけることが多く、ユーザーに大きな負担をかけません。

PMD は、他の多くの厄介なバグには適していますが、より多くの設定が必要です。多くの場合、PMDのデフォルト値は上にあります。おそらく非常に多くのルールがごくわずかなスケールで有益ですが、最終的には他のプログラマがあなたのコードを維持するのを助けません。一部のPMDルールでは、時期尚早な最適化が行われることがよくあります。

おそらく便利なのは、PMDの CPD のサポートです。リファクタリングをはるかに簡単にするために、他の場所で複製されたコードを見つけようとします。プロジェクト全体を実行すると、コードのクリーンアップとDRY違反の防止の最大の優先順位を決定するのに役立ちます。

Checkstyle も便利で、コーダーがコーディングスタイル標準に準拠していることを確認します。 PMDと少し重複していますが、一般的にははるかに使いやすいです。

最後に、 Cobertura は優れたテストカバレッジスイートです。単体テストが欠けている場所、および新しいテストの作成を優先する場所を見つけるのに非常に便利です。

ああ、私も Jester をテストしています。コードにある程度のカバレッジがある場合でも、テストの穴を見つけるのにかなり良いようです。まだお勧めできません。単純に十分に使用していないため、テストするためです。

これらのツールは、Eclipse内から、および自動ビルドスイートの一部として実行します。

他のヒント

Cの場合、 MEMWATCH を使用します。使い方は簡単で無料です。

過去に多くのメモリのバグを見つけるために使用しました。

resharperとMS TS(基本的にはFXCop)を使用しましたが、どちらも特に次の分野で非常に便利です:

  • デッドコードの特定
  • 広い範囲
  • パフォーマンスの改善(グローバリゼーションなどに関連)

推奨事項は常に素晴らしいとは限りませんが、一般的にコードの品質を改善しました。

私はCおよびC ++用の PC-Lint の長期ユーザーであり、非常に役立つと感じています。これらのツールは、馴染みのないコードベースを引き継ぐときに最も役立ちます。時間の経過とともに、収益が減少するという法則に直面します。そこでは、発見した新しいバグの数が減少する傾向があります。

私は常に、大規模なリリースで完全なプロジェクトリントを続けています。

編集:Wikipediaに関連ツールの素晴らしいリストがありますこちら

ReSharper にはかなり満足しています。コーディング中に有用な情報を提供するだけでなく(たとえば、不必要なキャスト、読み取り専用の適用など)、そのリファクタリング機能はコードを非常に迅速に再配置するのに優れています。

すべてを網羅しているわけではないので、FxCop(または同様の)はツールボックスに適切に追加されます。ただし、Resharperは即座にフィードバックを提供するため、所要時間は非常に良好です。 (FxCopはVSから実行できますが、同じimoではありません)。

アナライザーはやや便利です。VisualStudioにビルドインを使用します(例:c / c ++の/ analyzeおよび.netのカスタムルール)。時々 stylecop および codeitright C#は、主に物事のあり方に関するガイドラインです。

すべてのバグを見つける、すべてに最適なツールがあるとは思いませんが、ツールはバグを見つけるのに役立つと思いますが、追跡不可能ではありませんが、バグを見つけるのに多くの時間を費やすと信じています。

はい、あなたのコード品質は以前よりもいくらか優れていますが、手作業でのデバッグもまだ必要だと思います。ソースアナライザーは究極の治療法ではありませんが、良い薬です。実行するだけのツールがあり、あらゆる種類のバグを見つけて修正してくれるなら、数百万の費用がかかります。

私が知っているプログラマの中には、IBM Rational PurifyPlusが素晴らしいことを誓う人もいますが、それはツールとのセッションが2〜3回あったという意見です。

しかし、論理エラーのプログラミングの基本原則の1つは、発見と修正が最も難しいことを常に忘れないでください。したがって、長いデバッグ時間は避けられません。単体テストと組み合わせた優れたコードアナライザーは、奇跡を起こすかもしれません。

PS。私はC ++よりもC#のエラーがはるかに少ない傾向があり、誰かが間違っていると言うかもしれませんが、c#よりも長い年月c ++を使用していますが、「コードを見つけてそれを処理します」 C#のgcアプローチはc ++よりもはるかに簡単です。特に、制限時間/締め切りに完了するよう急いでいるプロジェクトでは、どのプロジェクトもこのようなものです...

C#には StyleCop を使用します。一貫したコードスタイルを維持し、コードの品質を向上させる優れたツールです。また、 ReSharper はコード分析を行いますが、かなり基本的なものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top