/ / Comprimento de nome ideal de uma variável Java da perspectiva de legibilidade - java, variáveis, legibilidade de código

Comprimento de nome ideal de uma variável Java da perspectiva de legibilidade - java, variáveis, legibilidade de código

Considere a constante no seguinte snippet Java:

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

public static final String CUSTOMER_ID_NOT_INTEGER = "12345678901";
}

A constante CUSTOMER_ID_NOT_INTEGER acima é usado para armazenar uma String que não pode ser convertida em um Integer porque seu valor é maior que Integer.MAX_VALUE.

Isso não é aparente a partir do nome da variável que transmite, na melhor das hipóteses, que o valor é um customer_id "inválido". Nada é comunicado sobre porque o valor é inválido.

Uma opção seria escrever um comentário que diz algo como:

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

No entanto, se tivéssemos que escrever código autodocumentado e não usar comentários, a única outra opção seria tornar o nome da variável mais descritivo. Algo como :

public static final String CUSTOMER_ID_GREATER_THAN_INTEGER_MAX_VALUE = "12345678901";

Mas, com a opção acima, não estou satisfeito com o comprimento do nome da variável, especialmente se você considerar o seguinte trecho sobre o comprimento ideal do nome da variável do Código Completo 2:

Capítulo 11. O Poder dos Nomes de Variáveis

Como você sugere que eu equilibre o comprimento do nome da variável e a legibilidade do código?

Respostas:

3 para resposta № 1

Se em vez de // um comentário você usar um / ** comentário(isto é, javadoc), quando um programador usa sua constante de um IDE ou olha seu javadoc, ele obterá explicações completas de todos os prós e contras de tal projeto, por que foi feito dessa forma etc.

Infelizmente, você não pode chamá-lo de "CUSTOMER_ID_THAT_IS_A_STRING_BECAUSE_IF_IT_WAS_AN_INT_IT_WOULD_BE_TOO_LARGE".