Pregunta sobre java, android, oop, methods, variables – ¿Declara las variables locales lo más tarde posible o en el corsé más cercano al que pertenecen? [cerrado]

5

Estoy trabajando para establecer algunos estándares de prácticas de programación para mi organización. Al hacerlo encontré el tema "Título de esta pregunta"

Algunos encuentran que es mejor declarar las variables lo más tarde posible y otros encuentran que es bueno tenerlas en la parte superior de la llave de arranque del método.

Oracle Standard también dice que declararlos lo antes posible. Así que estoy a favor de declararlos en la llave más cercana a la que pertenecen.

Las preocupaciones son

Código de legibilidad

Actuación

Menos propenso a errores

Cualquier comentario es bienvenido.

¿Cuál es el problema con solo seguir el estándar de Oracle de todos modos? Si desea que estén más cerca de un código específico, simplemente rodéelo con {} si desea definir un ámbito local. user387184

Tu respuesta

4   la respuesta
1

En Código de legibilidad del código encuentro que declarar la variable al principio de un bloque es la mejor opción.
Al pasar por el código, siempre sabrá dónde buscar la declaración en lugar de tener que buscar entre líneas de código. También es mejor cuando se mira un método para ver primero las variables declaradas y luego el código. Pienso que como una receta en un libro de cocina, enumera los ingredientes necesarios por separado de la instrucción de la receta.

En cuanto al rendimiento, no veo cómo esto haría ninguna diferencia. Si bien declarar con retraso puede ahorrar un poco de memoria al crear solo la variable cuando sea necesario al final de un bloque, utilizará la misma cantidad de memoria que tendría si declarara al principio de un bloque.

Error propenso, diría que es las mismas razones que la legibilidad.

Declare en el alcance más pequeño necesario y declare al inicio del bloque.

1

Creo que la 'legibilidad del código' es el único punto importante aquí. Y el código es definitivamente más legible si las variables se declaran más cerca de donde se usan.

Pero, a veces, para evitar 'errores' para los nuevos programadores que hacen la transición entre idiomas, se puede adoptar un estilo particular de método de codificación. Por ejemplo, JavaScript tiene un alcance funcional contra Java que tiene un alcance de bloque. Un programador de Java puede tener problemas con JavaScript si desconoce el alcance funcional de JavaScript. Por lo tanto, en el caso de JavaScript, para evitar posibles errores, solo se recomienda declarar todo al principio de una función / método.

Como mencioné anteriormente, 'Performace' no debería ser una preocupación. Pero, si elige declarar las variables más cerca de donde se usan, podría ayudar a reducir los costos de declaración e inicialización de las variables.

10

Esto es lo que dice McConnell en su libro de lectura obligatoria Código Completo 2:

Lo ideal es declarar y definir cada variable cerca de donde se usa. Una declaración establece el tipo de una variable. Una definición asigna a la variable un valor específico. En los lenguajes que lo admiten, como C ++ y Java, las variables deben declararse y definirse cerca de donde se usan por primera vez.

También recomienda mantener las variables con vida durante el menor tiempo posible y minimizar el alcance.

Lo importante para mí es seguir las convenciones de nomenclatura (las convenciones de código de Java de Sun son ampliamente utilizadas). En cuanto a dónde se declararon por primera vez, demoraría la declaración tanto como fuera posible por razones de rendimiento (declarar una var que podría no usar es una especie de desperdicio). A menos que sepa de antemano que se va a utilizar con seguridad, en ese caso, puede agruparlo con otras variables para mejorar la legibilidad. Creo que eso eslo que JCC dice al respecto.

0

Buena pregunta Javanator, según mi análisis

Código de legibilidad:

Es una buena práctica declarar las variables en el inicio del método porque son fáciles de mantener y menos confusas.

Actuación:

Caso 1:

Si declaramos variables en el comienzo del método y el método que tiene cientos de declaraciones, necesitamos 10 variables por fin antes de las 50 declaraciones que ocupan innecesariamente la memoria para esas variables.

Si necesitamos 20 variables en el método y las declaramos al principio, si obtenemos alguna excepción en la declaración del comienzo que ocupa innecesariamente la memoria.

caso 2:

Si declaramos variables donde las necesitamos damos un poco más de rendimiento.

Yo diría que si necesita una cantidad tan grande de variables en una función, entonces no será fácil de leer de ninguna manera, independientemente de dónde se declaren. paulm

Preguntas relacionadas