1

私はJavaプロジェクトに取り組んでおり、チームの約10人の開発者です。そして、私たちは皆 Eclipse を IDE として使用しています。

チーム内でより一貫したスタイルのソース コードを作成するために、コード フォーマッタ テンプレートを任意に使用することに意味があるのでしょうか? コードをチェックインする前にすべきことは、Eclipse でコード フォーマッタを使用することだけです。

一般に、一貫したコード スタイルがチームにメリットをもたらすことはわかっています。問題は、強制ルールとして機能する必要があるかどうかです。硬すぎるのかもしれません。

例 1: テンプレートは、行の最大幅を 80 に強制します。80が設定可能であることは確かです。

例 2: Eclipse でフォーマットされたコード:

int green = 1;
int red = 1;
int orange = 1;

私の好みのコード:

int green  = 1;
int red    = 1;
int orange = 1;

したがって、コード テンプレートを使用するのが私の意見ですが、厳格ではありません。テンプレートへの違反は許容され、必要です。それについてどう思いますか。

4

3 に答える 3

2

私たちが使用しているのはcheckstyleで、Eclipseで(コーディング中に開発者を支援するために)構成され、自動検証とレポートを作成するMaven プラグインとして構成されています。Sun/Oracle の Java コード規則(デファクト スタンダード) とその他の優れたプラクティスをチェックします。誰もが規則を知っており、規則 (スペースなど) に一致する小さな自動書式設定のヒントを適用できます。コードレビューも行います。

ほとんどの場合、私は個人的な意見を考慮に入れることを避けようとします。たとえば、例2では、​​Eclipseは「標準」のフォーマットを適用しているため、誰かが個人的に理解しやすいと考えているからといって、別のフォーマットを使用しようとはしません。

私の意見では、これにはいくつかの利点があります。

  • 「コードの共同所有権」の観点からは、すべてのコードがまったく同じ人物によって書かれているように見えます。
  • 異なるプロジェクト間で開発者を移動する方が簡単です。
  • コードは読みやすく、保守が容易です。
  • だれかが他の IDE を好むかどうかは問題ではありません。

新しいプロジェクトの場合、Maven で checkstyle の自動検証を行ったら、厳密な検証を行うことをお勧めします。つまり、コード スタイル エラーを (単なる警告ではなく) コンパイル エラーとして扱います。コード スタイルが有効でない場合、ビルドは壊れます。最初は多少の規律が必要ですが、最終的にはコードの品質が向上します。

于 2012-06-03T11:24:47.843 に答える
2

ルールをまとめた文書を作って、みんなに読んでもらいたい。ルールは破るために存在するものであり、コード フォーマッタが自動的に作業を行うとは限りません (私の場合、これは複数行の if ステートメントでよく発生します)。

また、コーディング標準に常に適用されるとは限らないため、誰かが自動フォーマッタを使用するたびに、実際には変更されていない行を変更して、git/svn/cvs に大混乱を引き起こします。

したがって、私のアドバイスは、自動書式設定を使用せず、人々に読みやすいコードを書くよう説得/学習/強制することです。そしてコードレビューも!

于 2012-06-03T11:06:05.410 に答える
0

フォーマッター構成をバージョン管理にチェックインし、フォーマッターを保存アクションとして構成します。

これには全員がEclipseを使用する必要がありますが、すでに使用しています。

次の利点があります。

  • フォーマットは一貫しています
  • コードのフォーマットに時間をかけない
  • コードレビューでフォーマットについて議論する人は誰もいない

場合によっては、フォーマッタが奇妙なことをするという欠点があります。これは次のように対処できます。

  • 問題のステートメントを書き直します (たとえば、ローカル変数を抽出して行を短くし、行の折り返しを回避します)
  • フォーマッタにヒントを与えます (たとえば、次のコマンドで改行を強制的に残すことができます)。//
  • on/off タグを使用してコードのセクションのフォーマッタを無効にする
于 2012-06-03T12:42:37.930 に答える