2011-01-22 11 views
8

通常、既存のプロジェクトでいくつかの作業を行うときは、コードベースにすでに設定されているスタイルに関係なくそのまま使用します。しかし、私たちのチームは、中小規模のプロジェクトを複数保有しなければならず、すべてがコーディングスタイルが少し異なります。これらの違いを解決することができれば、より効率的で混乱は少なくなります。Javaコードベースのコーディングスタイルをリファクタリングするツールはありますか?

私は既存のスタイルをリファクタリングできるツールを探しています。インデントスタイルを変更するなどの標準的なコード書式設定ツールによって、多くの機能が既に提供されています。私が欠けているのは、フィールド名とパラメータ名のプレフィックスを削除するツールです。一部のプロジェクトでは、すべてのメンバーに接頭辞「m」が付き、すべてのパラメーターに接頭辞「p」が付いていて、静的メンバーに接頭辞「s」が付いています。

なるはず
void setValue(String pValue) { 
    mValue = pValue; 
} 

ツールのようなケースを扱うことができるはず

void setValue(String value) { 
    this.value = value; 
} 

ツールは、このような場合に警告を生成する必要があります

void setValue(String pValue) { 
    int value = 42 
} 

私はすべての主要なIDEがリファクタリング:リネーム機能を提供していることを知っています。私が探しているのは、私が各パラメータ/フィールドを個別に調べる必要なく、コードベース全体を処理するツールです。

編集

回答の多くは、ソースコード形式の再またはスタイル規則のセットに対してコードベースをチェックするためのツールを言及します。私はそれらのツールが存在することを知っています。私が特に探しているのは、スコープ固有の変数名接頭辞を削除するための高度なツールです。

+0

..あなたの問題のための最良の選択肢でありますハンガリーの表記を検出して警告することができます。 – BalusC

+0

あなたは[astyle](http://astyle.sourceforge.net/)を見てみませんか? – Uroc327

答えて

-2

FindBugsは、コード静的解析のための非常に優れたツールです。潜在的なバグ を実際に探求し、IDEとビルドツールに統合するのは簡単です。

+3

OPは具体的にリファクタツールを求めていました。 FindBugs(とCheckStyle)はそうではありません。 – BalusC

+1

私はBalusC – Krishna

0

私はあなたのためにこれを行う既存のプロジェクトは認識していません。

あなた自身で書くことは考えていますか?たとえば、Eclipseフレームワークでは、堅実なコード書式設定ツールが提供されています。彼らのうちの1人をあなたが何を示唆するように拡張することを調査しましたか?あなたが言及したパターンで指定された変数を検出するのはかなり簡単です。

私はそれが理想的な解決策ではないことを認識しています。しかし、コードベースが十分に大きい場合は、すべての編集を手作業で行うよりもコスト効率が良いかもしれません。

0

Jalopyのように聞こえるかもしれない助けてください。

Jalopyでは、コードフォーマットスタイルを定義し、ファイル、パッケージ、またはプロジェクト全体を読み込んで再フォーマットすることができます。ハンガリーの表記法(mVarのクラップス)を使用しないようにローカル変数のスタイルを変更するなど、より洗練されたリファクタリングを行うことができるかどうかは想像もしませんが、スペーシング、ブラケット、並べ替えなどの間で変更できます。

私は過去にJalopyを使用していましたが、うまくいきました。私は人々が異なるパーソナル・コーディング・スタイルを持っていたチームでそれを使っていましたが、Jalopyが自動的に処理した特定のフォーマットについてコミットしました。(あなたがそれをチェックアウトすると、あなたの方法でフォーマットされ、それがチェックインされると、それはチームが合意した方法などでフォーマットされます)

1つの問題はありますが、とか、ぐらい。しかし、より最近のcommercial version tooがあります。その努力がその方向に向いているようです。それでも古いリリースはうまくいくかもしれません。

また、Jindentのような他の同様の商業的な製品があります。

+0

に同意しますこのプロジェクトのように、親指よりも多くの親指を持っているようです。 :) – limc

+0

サムのアップ/ダウンの比率については、私は塩の粒でそれを取るだろう。大部分の親指を落とした人は、実際にそれを使用していないか、Netbeansの新しいバージョンと統合しないと不平を言っています。それはスタンドアロンで実行することができますが、IDEと統合する必要はありません(持っていることはいいですが)。私は1年か2年で自分で使ったことはありませんでしたが、以前はかなり使い慣れていました。また、あなたが本当に必要な場合は、商用版があります(私はTriemaxサイトで試用版を見ませんが、これは愚かなようですが、少なくとも新しいものを試してその違いを見ることができるはずです)。 –

1

EclipseのClean Upツールを試しましたか?確かに、ここに示されたいくつかの例を処理するつもりはありませんが、私の意見ではかなりうまくいっています。

+0

eclipseクリーンアップツールでは、変数接頭辞を削除できません。私は、このツールは多くの場合非常に有用であることを知っていますが、私が特に求めていたユースケースはサポートしていません。 –

2

私は、同様の、またはさらに高度なツールを探していました。私は非常に文脈に依存する設計メトリックを実装しようとしていました。私はNdependやreflectkのような商用で非常に高価なツールを見つけました。また、Hammurapiのようなものもあるオープンソースのツールがいくつか見つかりました。 Checkstyle、Findbugs、PMDのようなツールもあり、非常に単純なユースケースで使用できます。私が見つけた最高のツールはMoDiscoでした。 Eclipse EMFに基づいているため、コードのモデルを生成したり、(M2Mツールを使用して)クエリや変換を行うことができます。私が持っていた唯一の問題は、標準〜20k LOCプロジェクトではかなり遅いということでした。それを試してみてください。おそらくあなたのユースケースで十分です。

0

のEclipse IDEは、私はそれを行うことができますリファクタリングツールを知らない、しかし、私はそれ[のCheckstyle](http://checkstyle.sourceforge.net/)知っ

関連する問題