Ruby 用の自動コード品質ツール?[閉まっている]
-
09-06-2019 - |
質問
Java に関して私が本当に残念に思っていることの 1 つは、ツールのサポートです。FindBugs、Checkstyle、PMD は、コード品質メトリクスと自動バグ チェックの三位一体を実現します。
Ruby コードの単純なバグやスタイル違反をチェックするものはありますか?Rails のイディオムが遵守されるように、Rails などのフレームワークに適応させることができればボーナス ポイントです。
他のヒント
Saikuro と Flog は、コードの複雑さの基本的な概念を理解するのに適しています。rcov などのツールを使用してテスト カバレッジを確認することもできます。
これらすべてのメトリクスを単一の rake タスクに結合する Rails プロジェクト用のプラグインがあります。いわゆる metric_fu.
最近見つけてテストしたプロジェクト:
- https://github.com/railsbp/rails_best_practices
- 機能しているようで、賢明な警告を発します
- https://github.com/simplabs/excellent
- 機能しますが、かなりの数の誤検知が発生します
- https://github.com/troessner/reek
- このツールの警告のほとんどには同意しませんが、機能します
- http://www.cs.umd.edu/projects/PL/druby/
- これには ocaml が必要です。試してないけど、良さそうですね
- http://roodi.rubyforge.org/
- Ruby 1.9と互換性がないようです
- https://github.com/gdb/ruby-static-checker
- 私にとっては壊れており、名前エラーのみをキャッチするため、単体テストでそれをカバーする必要があります。
- https://github.com/michaeledgar/laser
- 私にとってはコンパイルされません
試してみてはいかがでしょうか ルボコップ. 。これは、Ruby コード スタイル チェッカーです。 Ruby スタイルガイド. 。これはかなり積極的に保守されており、標準の Ruby ツール ( ripper
図書館)。Ruby 1.9 および 2.0 でうまく動作し、Emacs との統合も優れています。ぜひお役立てください。
ほこり 未使用の役に立たないコードを見つけるのに役立ちそうです。これは、あなたが求めているものにある程度合っているようです。
他にそのようなツールを知りません。
この問題は、Java よりも Ruby で対処するのがはるかに困難です。これらの Java ツールはすべて、コードの「静的分析」を使用していると宣伝していることに気づくでしょう。
Ruby コードの静的分析は、分析できる静的なものが何もないため、多くの場合不可能です (メソッドは実行時に作成されることがよくあります)。
いずれにしても、これらの機能の一部は、言語に組み込まれているため、Ruby では不要です。たとえば、クラスがすべて NamedLikeThis
そうしないとコードが機能しないからです。
追伸私 持っている こういった種類のツールは、往々にしてやや危険なものになる可能性があるという標準的な免責事項を付け加えておきます。コードをツールが考えるものに準拠させるのに一日中費やし、最終的に当初よりも多くのバグが発生する可能性があります。
私の意見では、最善の解決策は、コードをより読みやすくするために流暢に書くことです。どれだけの静的分析を行っても、その目的を明確に示したコードを人間が読み取ることほど優れたものは得られません。これができるという点で、Ruby は他の多くの言語よりも何光年も先を行っています。個人的には、静的分析に時間を費やすよりも、より流暢に書く方法を学び、そのようなことについてチームを教育することに努力を向けることをお勧めします。
もう 1 つの素晴らしいツールですが、著者によれば初期段階ではありますが、次のような臭いがします。
reek には現在、次のコード臭に対する非常に単純なチェックが含まれています。
- ロングメソッド
- 大人数クラス
- 機能羨望
- 伝わりにくい名前
- 長いパラメータリスト
- 効用関数
- ネストされたイテレータ
- コントロールカップル
- 複製
- リスト項目
個人的には、まだ誤検知が多すぎると思いますが、コードの一部の出力を確認するだけで、コード スタイルとアーキテクチャに関するいくつかの決定を再考するのに役立ちました。
コード環境 は、git を介して統合され、コードを自動的に「採点」する SaaS ツールです。品質が突然低下した場合は、さまざまなチャネルを通じて通知します。UIも素敵。
質問されたときにこの質問は表示されませんでしたが、私が行ったブログ投稿も役立つかもしれません。その中で私は一連の Ruby ツールを取り上げており、特に 4 つのコード品質ツールを取り上げています...
- ルーディ
- ほこり
- フロッグ
- サイクロ
タオルリーとフレイもチェックしてみる価値があるかもしれません
http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/
現在、多くのツールを結合して、Caliper と呼ばれる唯一の Ruby コード品質およびメトリクス監視ツールを作成しました。これはあなたのニーズによく合うかもしれません。プロジェクトの存続期間全体にわたって、さまざまな品質指標を追跡します。
もあります 素晴らしい. 。まだ試していませんが、これも期待できそうです。