0

次の Java スニペットの定数を検討してください。

public class ConsumerServiceTestFixture {
    private ConsumerServiceTestFixture() {
        throw new AssertionError("This class should not be instantiated");
    }

    public static final String CUSTOMER_ID_NOT_INTEGER = "12345678901";
}

上記の定数CUSTOMER_ID_NOT_INTEGERは、値が Integer.MAX_VALUE より大きいため、整数に変換できない文字列を格納するために使用されます。

これは、せいぜい値が「無効な」customer_id であることを伝える変数の名前からは明らかではありません。値が無効である理由については何も伝えられません。

1つのオプションは、次のようなコメントを書くことです:

// Invalid since this number is greater than Integer.MAX_VALUE
public static final String CUSTOMER_ID_NOT_INTEGER = "12345678901"; 

ただし、コメントを使用せずに自己文書化コードを作成する必要がある場合は、変数名をよりわかりやすいものにするしかありません。何かのようなもの :

public static final String CUSTOMER_ID_GREATER_THAN_INTEGER_MAX_VALUE = "12345678901"; 

しかし、上記のオプションでは、特に Code Complete 2 からの最適な変数名の長さに関する次のスニペットを検討する場合、変数名の長さに満足していません:

第11章 変数名の力

変数名の長さとコードの読みやすさのバランスをとるにはどうすればよいでしょうか?

4

1 に答える 1

3

//コメントの代わりに/**コメント(つまり、javadoc)を使用する場合、プログラマーがIDEから定数を使用するか、javadocを見ると、そのようなすべての長所と短所の完全な説明が得られます。デザイン、なぜこのように行われたのかなど。

残念ながら、「CUSTOMER_ID_THAT_IS_A_STRING_BECAUSE_IF_IT_WAS_AN_INT_IT_WOULD_BE_TOO_LARGE」という名前を付けることはできません。

于 2012-07-24T16:24:09.807 に答える