web-dev-qa-db-ja.com

メソッドまたは変数の名前が長すぎますか?

だから私は現在コーディングの最中だったのですが、残念ながら私は「ゾーン」にいたのですが、自分で考えたのですが、メソッド/変数の名前は長すぎますか?

[〜#〜] pop [〜#〜]ゾーンの外に行きます!

だから私は尋ねるためにここに来ました、私のメソッド/変数名は長すぎますか?あなたは裁判官になります!ボーナスは私が書いていることを理解できる人なら誰でもポイントしますが、グルはすぐに理解できると確信しています!

とにかく、これが私のメソッドと変数名の一部です。

方法:

  • searchBlockedListForBlockedSquares()
  • isCurrentSquareNextToAtLeastOneBlockedSquare()
  • searchBlockedListForBlockedSquares()

変数:

  • isNextToBlockedSquares

長すぎると思われる変数は1つしかなかったと思います。

15

あなたの名前は長さの点で私には問題ないようです。しかし、それらの命名方法は、おそらくいくつかの新しいクラスが適切であることを示唆していますか?

たとえば、searchBlockedListForBlockedSquares()の代わりにblockedList.getBlockedSquares()を使用できます。同様に、isCurrentSquareNextToAtLeastOneBlockedSquare()currentSquare.isAdjacentToABlockedSquare()になります。

32
Adam Lear

たとえ長い変数名を意味するとしても、説明的な変数名を信じています。そして、インテリセンスの人気が高まっているため、生産性に大きな影響を与えるとは思いません。

略語は、一貫して使用することがほぼ不可能であるため、嫌いです。さらに、あいまいになる可能性があり、物事を読みにくくします。それらが標準の一部であっても、私はそれらが好きではありません。それに加えて、多くの省略をしない限り、多くの文字は削除されません。そして、多くの省略は読みやすさを損なう。

長い名前がもたらす最大の問題は、コードの長さがどれだけ長くなるかです。長い名前で関数を呼び出し、2つまたは3つの長い変数名を渡すと、1行のコードが長くなる可能性があります。そのため、私の名前はできるだけ短くするよう努めていますが、改行やスクロールを意味する場合でも、わかりやすい名前を付けたいと思います。

ただし、名前の例を見ると、すべてBlockedSquaresで終わっているため、名前の一部が冗長である可能性があります。実際、これらの項目は、おそらくBlockedSquaresという名前の独自のクラスにカプセル化できることを意味する場合もあります。名前がかなり短くなるこの変更。

11
Jeff Siver

変数名は、その目的を明確に説明していない場合、誤った長さになります。これは、短すぎたり長すぎたりする場合に当てはまります。

短く簡潔な変数名はあいまいになる可能性があり、さらに悪いことに、変数とは何の関係もありません。通訳されたBASICの時代には、通訳者によって2人のキャラクター名に制限されていました。大規模なプログラムで意味のある名前を付けるのは非常に困難でした。 1文字の変数名はforループとカウンターによく使用されますが、それ以外の場合は避ける必要があると思います。 for (i = 0; i < 10; i++) {...}iを使用しますが、これは非常に一般的です。 jは二次変数名です。

長い変数名は、長引くか空の単語でいっぱいになると長すぎて、必要以上に長くなります。同様の名前の変数がたくさんある場合は、不要な共通部分を削除して、名前の一意に識別できる部分を維持しようとします。

isCurrentSquareNextToAtLeastOneBlockedSquare」という名前をcurrentSquareNextToBlockedSquare?、Rubyで実行している場合。

6
the Tin Man