Recientemente descubrí la alegría de la función "Guardar acciones" en Eclipse IDE. Puedo forzarlo a formatear mi código, insertar @Override
anotaciones faltantes y hacer algunas cosas ingeniosas como eliminar paréntesis innecesarios en expresiones o poner final
palabras clave en todas partes automáticamente cada vez que presiono ctrl + S
. ¡Activé algunos de esos factores desencadenantes y, vaya, ayuda mucho!
Resultó que muchos de esos desencadenantes actúan como una verificación rápida de mi código.
- Tenía la intención de anular un método pero la anotación no apareció cuando presioné
ctrl + s
? - ¡Quizás arruiné tipos de parámetros en alguna parte!
- ¿Se eliminaron algunos paréntesis del código al guardar? - tal vez esa expresión lógica es demasiado difícil para que un programador pueda moverse rápidamente. De lo contrario, ¿por qué agregaría esos paréntesis en primer lugar?
- Ese parámetro o variable local no lo es
final
. ¿ Tiene que cambiar su valor?
Resultó que cuantas menos variables cambien, menos problemas tendré en el momento de la depuración. ¿Cuántas veces seguías el valor de alguna variable solo para descubrir que de alguna manera cambia de 5 a 7? "¡¿Cómo demonios podría ser ?!" te preguntas y pasas las próximas dos horas entrando y saliendo de innumerables métodos para descubrir que has cometido un error en tu lógica. Y para solucionarlo, debe agregar una bandera más, un par de condiciones y cambiar cuidadosamente algunos valores aquí y allá.
¡Oh, odio la depuración! ¡Cada vez que ejecuto el depurador siento que se me acaba el tiempo y necesito desesperadamente ese tiempo para hacer realidad al menos algunos de los sueños de mi infancia! ¡Al diablo con la depuración! final
s significa que no habrá más cambios de valor misteriosos. Más final
s => partes menos endebles en mi código => menos errores => ¡más tiempo para hacer cosas buenas!
En cuanto a las final
clases y los métodos, realmente no me importa. Amo el polimorfismo. Polimorfismo significa reutilización significa menos código significa menos errores. JVM hace un trabajo bastante bueno con la desvirtualización y la línea de métodos de todos modos, así que no veo un valor en matar las posibilidades de reutilización de código para obtener beneficios de rendimiento poco sólidos.
Ver todas esas final
s en el código es algo molesto al principio y lleva tiempo acostumbrarse también. Algunos de mis compañeros de equipo todavía se sorprenden al ver tantas final
palabras clave. Ojalá hubiera una configuración en el IDE para colorear sintaxis especial. Me encantaría cambiarlo a un tono gris (como anotaciones) para que no distraigan demasiado al leer el código. Eclipse actualmente tiene un color separado para return
y todas las demás palabras clave, pero no para final
.
final
campos tiene la misma semántica que escribir unvolatile
campo y, a continuación, leerlos más tarde tiene que tener la semántica de lectura volátiles, esto no siempre es lo que quieren