1

次のうち、Java コーディング標準に従ったベスト プラクティスはどれですか

public void function1(){
 boolean valid = false;
 //many lines of code
 valid = validateInputs();
 //many lines of code
}

また

public void function1(){
 //many lines of code
 boolean valid = validateInputs();
 //many lines of code
}

ここで「有効」は返品用ではありません。そのスコープは関数の内部のみです。1 つの if 条件のみの場合もある

私は通常、2 番目のケースと同様にコーディングします。上司はこれを気に入らないようで、レビューに出すときにコードを変更します。私のアプローチが正しくない特定の理由はありますか?

最初のアプローチの欠点は、後でメソッドを複数のメソッドにリファクタリングするのが非常に難しいことです。

4

4 に答える 4

4

私は 2 番目のアプローチを採用します。ここでは Java コーディング標準の問題ではなく、クリーンで読みやすいコードの問題です。falseまた、最初のケースで値を割り当てますが、その時点で値を持つべきではないvalidため、実際には正しくありません。valid

余談ですが、呼び出されたメソッドがvalidateInputs()を返すとは思わないでしょうboolean。渡されたパラメーターはなく、名前はメソッドが何かを返すというヒントを与えていません。コードを次のようなものにリファクタリングするのはどうboolean validInput = isValid(input)ですか?

于 2013-06-11T12:15:07.677 に答える
2

決定の背後には常に理由があるはずです。

2 番目の例は、宣言で値を初期化するのに適しているため、より優れています。

Google には、多くの C タイプ言語に適用できる優れた標準セットがあります。参照している例は、「ローカル変数」セクションに示されています。

于 2013-06-11T12:12:45.457 に答える
2

使用されるスコープ内でのみ変数を宣言することをお勧めします。これにより、コードを見つけるためにコードの先頭にジャンプするのではなく、宣言と使用法の両方を一緒に見ることができるため、誤って使用してはならないときに誤って使用することがなくなります。

C の時代には、コンパイラがあまり賢くなかったため、最初の形式を使用する必要がありました。しかし、コードを理解しやすくするために、2番目の形式が追加されました。

于 2013-06-11T12:14:02.727 に答える
2

どちらが良いかは個人の好みの問題です。すべての場所には独自の基準があるため、職場ではそれに従う必要があります。

これが、すべてのプログラマーが自分の個人的なプロジェクトを持つべきだと私が考えるもう 1 つの理由です。そうすれば、自宅でも自分のスタイルでコーディングできるので、1 つのスタイルだけにこだわることはありません。

于 2013-06-11T12:14:54.420 に答える