2008-11-19 12 views

Respuesta

2

En C++, al menos, se debe evitar la capitalización constantes para evitar confusiones con #defines, que son canónicamente capitalizado.

0

Ese es el estándar oficial y de facto para nombrar constantes en el lenguaje Java, así que a menos que consideres Java un lenguaje arcaico, supongo que la respuesta es no.

+0

¿Por qué Java tomó algo de C/C++ hace más de una década, eso significa que tenemos que continuar con la práctica? –

+0

No sugerí que continuara con la práctica, simplemente señalé que esta convención aún se usa ampliamente y, por lo tanto, no puede considerarse misteriosa. –

12

Debe hacer lo que es la convención en el idioma/plataforma que está utilizando. Por ejemplo, las constantes de .NET deben estar encastilladas en pascal, p.

SomeConstant 

En otros idiomas, es probable que sea diferente.

0

¿Qué idioma?

No, pero debe ponerlos en una clase o espacio de nombres.

1

Si está agregando o manteniendo una base de códigos existente, haga lo que hace para evitar confundir a las personas. Si se trata de un proyecto nuevo, acuerde una convención con su equipo y hágalo.

Si es su propio proyecto, haga lo que está acostumbrado.

2

En realidad, esto puede no ser independiente del idioma. Algunos idiomas tienen una tradición de usar mayúsculas, mientras que otros no. Por ejemplo, en mayúscula C++ suele ser para enumeraciones y solo, mientras que Java usa mayúsculas más liberalmente.

2

La sensación personal es que las convenciones de nomenclatura deben significar algo, y son buenas siempre que den sentido. Aparte de eso, lo mejor es seguir las convenciones del idioma en el que estás trabajando. De lo contrario, en lugar de simplificar para el lector, estás (moderadamente) ofuscando. Por ejemplo, en java

THIS_CONSTANT 

es una forma común de escribir finales estáticos. Otros idiomas tienen diferentes estilos.

1

No capitalizo mis constantes. De hecho, uso 'const' tan proactivamente que no tiene sentido capitalizarlos. Por ejemplo:

const size_t size = v.size(); 
for(size_t i = 0; i < size; ++i) ... 

Este uso de 'const' puede parecer inútil, pero le da la confianza de que 'tamaño' es una instantánea del tamaño de ese vector en ese punto en el tiempo. El compilador se asegurará de que esto sea cierto para todo el alcance.

Sí, capitalizo mis MACROS. Pero, usar #define para declarar constantes es un tema diferente.

0

Capitalizo y uso el guión bajo para .Net, Java y PHP.

0

Prefiero que las constantes sean mayúsculas a menos que haya una razón para no hacerlo.

4

La convención de mayúsculas fue inventada para macros, donde había buenas razones para gritar: "¡Cuidado! ¡Una macro!" (Hay muchas maneras de cometer errores). Una constante a nivel de lenguaje es una bestia domesticada, pero la convención persistió.

Use su criterio; donde hay una fuerte convención, como supongo, en el mundo de Java, es una pérdida de energía luchar contra ella.

5

Efectivo Java nos recomienda mayúsculas y guiones bajos para static final valores que son inmutables. De lo contrario, no son constantes.

decir

public static final String ID_FOO_BAR = "org.acme.foo.bar"; 
public static final List<String> sList = new List<String>(); 
public static final List<String> LIST = Collections.unmodifiableList(sList); 
public static final String[] sArray = new String[] {"foo", "bar", "baz" }; // FindBugs complains, if this is public. 
public static final List<String> ARRAY = Arrays.asList(sArray); 

Aquí está la cita:

Por convenio, estos campos tienen nombres que consisten en letras mayúsculas, con palabras separadas por guiones. Es fundamental que estos campos contengan valores primitivos o referencias a objetos inmutables.

... de lo contrario, si los objetos mutables parecen constantes, se confunden como tales.

+0

¿Los registradores están declarados como "final estática privada" para ser declarados también como REGISTRADOR? –

+0

Quieres que diga mónada, ¿verdad? No estoy seguro de que tbh: podría hacer argumentos de cualquier manera. – jamesh

+1

Creo que 'logger' debería llamarse 'logger' en lugar de 'LOGGER', ya que es más fácil escribir en minúsculas. Además, el formateo en el IDE para las variables declaradas como 'estáticas' suele ser distintivo. –

Cuestiones relacionadas