Uso de guiones bajos en las variables de Java y nombres de métodos

Incluso hoy en día a menudo veo guiones bajos en variables y métodos de Java, un ejemplo son las variables miembro (como “m_count” o “_count”). Por lo que recuerdo, el uso de guiones bajos en estos casos se llama mal estilo por Sun.

El único lugar donde deben usarse es en constantes (como en “public final static int IS_OKAY = 1;”), porque las constantes deben ser todas mayúsculas y no camel case. Aquí, el guión bajo debe hacer que el código sea más legible.

¿Crees que usar guiones bajos en Java es un mal estilo? Si es así (o no), ¿por qué?

Si no tiene código para usarlo ahora, le sugiero que continúe. Si su código base lo usa, continúe así.

Lo más importante sobre el estilo de encoding es la consistencia . Si no tiene nada con que ser consecuente, entonces las recomendaciones del proveedor del idioma probablemente sean un buen lugar para comenzar.

  sunDoesNotRecommendUnderscoresBecauseJavaVariableAndFunctionNamesTendToBeLongEnoughAsItIs ();

 as_others_have_said_consistency_is_the_important_thing_here_so_chose_whatever_you_think_is_more_eadable (); 

Reglas:

  1. Haz lo que el código que estás editando hace
  2. Si el # 1 no se aplica, use camelCase, sin guiones bajos

No creo que usar _ o m_ para indicar variables miembro sea malo en Java o en cualquier otro idioma. En mi opinión, mejora la legibilidad de su código porque le permite ver un fragmento e identificar rápidamente todas las variables miembro de los locales.

También puede lograr esto forzando a los usuarios a anteponer variables de instancia con “esto”, pero esto me parece un poco draconiano. En muchos sentidos, viola DRY porque es una variable de instancia, por qué calificarla dos veces.

Mi propio estilo personal es usar m_ en lugar de _. La razón es que también hay variables globales y estáticas. La ventaja de m _ / _ es que distingue un scope de variables. Entonces no puedes reutilizar _ para global o estático y en su lugar elijo g_ y s_ respectivamente.

“Mal estilo” es muy subjetivo. Si ciertas convenciones funcionan para usted y su equipo, creo que calificará un estilo malo / bueno.

Para responder a su pregunta: uso un guion bajo para marcar variables privadas. Lo encuentro claro y puedo escanear rápidamente el código y descubrir qué está pasando.

(Casi nunca uso “esto”, excepto para evitar un choque de nombres).

el uso de ‘m_’ o ‘_’ en el frente de una variable hace que sea más fácil detectar las variables de los miembros en los métodos de un objeto.

Como beneficio secundario, escribir ‘m_’ o ‘_’ hará que intellsense los muestre primero;)

  • Me gusta guiar los guiones bajos para variables de instancia (privadas), parece más fácil de leer y distinguir. Por supuesto, esto puede ocasionarte problemas con casos límite (por ejemplo, variables de instancias públicas (no es común, lo sé); Es posible que estés rompiendo tu convención de nombres:
  • private int _my_int; public int myInt;? _my_int? )

-tanto como me gusta el estilo de esto y creo que es legible, me parece que es más problemático de lo que vale, ya que es poco común y es probable que no coincida con nada más en la base de código que está utilizando.

-la generación de código automatizado (por ejemplo, generadores de eclipse, setters) no es probable que entienda esto, así que tendrás que arreglarlo a mano o ensuciar con eclipse lo suficiente como para que lo reconozca.

En última instancia, vas contra el rest de las preferencias del mundo (java) y es probable que tengas algunas molestias por eso. Y como han mencionado los carteles anteriores, la coherencia en la base de código supera a todos los problemas anteriores.

Es bueno tener algo para distinguir las variables privadas de las públicas, pero no me gusta ‘_’ en la encoding general. Si puedo ayudarlo con el nuevo código, evito su uso.

Hay una razón por la que el uso de guiones bajos se consideró un mal estilo en los viejos tiempos. Cuando un comstackdor en tiempo de ejecución era algo inaccesible y los monitores llegaban con una asombrosa resolución de 320×240 píxeles, a menudo no era fácil diferenciar entre _name y __name .

Es una mezcla de estilos de encoding. Una escuela de pensamiento es preceder a los miembros privados con un guión bajo para distinguirlos.

 setBar( int bar) { _bar = bar; } 

en lugar de

 setBar( int bar) { this.bar = bar; } 

Otros utilizarán guiones bajos para indicar una variable local temporal que saldrá del scope al final de la llamada al método. (Me parece bastante inútil, un buen método no debería ser tan largo, y la statement está CORRECTA, así que sé que está fuera de scope) Editar: Dios no permita que un progtwigdor de esta escuela y un progtwigdor de la escuela MemberData colaboren ! Sería un infierno.

A veces, el código generado precederá las variables con _ o __. La idea es que ningún ser humano haría esto alguna vez, por lo que es seguro.

Aquí hay un enlace a las recomendaciones de Sun para Java. No es que tenga que usar estos o incluso que su código de biblioteca los siga a todos, pero es un buen comienzo si va desde cero. Herramienta como Eclipse ha incorporado formateadores y herramientas de limpieza que pueden ayudarlo a cumplir con estas convenciones (u otras que defina).

Para mí, ‘_’ son muy difíciles de escribir 🙂

Creo que cualquier estilo que rompa las pautas de estilo de un idioma (sin la debida razón) es feo y, por lo tanto, “malo”.

Sin duda, el código que ha visto fue escrito por alguien que solía trabajar en un lenguaje donde los guiones bajos eran aceptables.

Algunas personas simplemente no pueden adaptarse a los nuevos estilos de encoding …

La razón por la que las personas lo hacen (en mi experiencia) es diferenciar entre las variables miembro y los parámetros de la función. En Java puedes tener una clase como esta:

 public class TestClass { int var1; public void func1(int var1) { System.out.println("Which one is it?: " + var1); } } 

Si creó la variable miembro _var1 o m_var1, no tendría la ambigüedad en la función.

Entonces es un estilo, y no lo llamaría malo.

Personalmente, creo que un lenguaje no debería hacer reglas sobre el estilo de encoding. Es una cuestión de preferencias, uso, conveniencia, concepto de legibilidad.
Ahora, un proyecto debe establecer reglas de encoding, para mantener la coherencia entre las listas. Puede que no esté de acuerdo con estas reglas, pero debe cumplirlas si quiere contribuir (o trabajar en equipo).

Al menos, IDEs como Eclispe son agnósticos, lo que permite establecer reglas como prefijos variables o sufijos, varios estilos de colocación de llaves y gestión del espacio, etc. Así que puede usarlo para reformatear el código según sus pautas.

Nota: Estoy entre los que mantienen sus viejos hábitos de C / C ++, codificando Java con m_ prefijos para variables miembro (y s_ para estáticos), prefijando booleanos con una inicial b, usando una letra mayúscula inicial para nombres de funciones y alineando llaves. .. ¡El horror para los fundamentalistas de Java! 😉
Curiosamente, esas son las convenciones que uso donde trabajo … ¡probablemente porque el principal desarrollador inicial proviene del mundo de MFC! :-RE

es solo tu propio estilo, nada un código de estilo malo, y nada es un buen código de estilo, solo diferencia nuestro código con los demás.

    Intereting Posts