Juego de Fútbol Soccer Multiusuario
January 28th, 2008 by Jorge MachinPosteado en Adobe Flash, Arqueología Machinesca, Java, Videojuegos | No hay comentarios »
Posteado en Adobe Flash, Arqueología Machinesca, Java, Videojuegos | No hay comentarios »
Uno de las diferencias entre Java y lenguajes compilados que no usan máquinas virtuales como C/C++ es el uso de un preprocesador. La conveniencia de tener uno puede ser la causa de debates filosóficos y quizás hasta religiosos que en realidad no quisiera tratar. Pero debo confesar que cuando aprendí Java hace muchos años, me sentí limitado al no contar con uno. ¿Por qué? Porque tengo el hábito de tener en un mismo código tanto la versión de depuración como la de producción usando #ifs para cambiar entre ellas con sólo modificar una variable y recompilar. Obviamente esto se puede hacer con simples ifs, pero en programas grandes donde se requiere la máxima velocidad puede hacerlos lentos y pesados en tamaño. Además tener las dos versiones juntas puede dar detalles de más a ojos indiscretos.
Afortunadamente, se puede explotar que el compilador de java optimiza muy bien el código para obtener el mismo comportamiento. El truco consiste en poner una variable declarada como public static final de la siguiente forma:
private static final boolean DEBUG = true;
}
Y hacer los ifs de forma acostumbrada:
System.out.println( "Aquí imprimimos o hacemos cosas exclusivas de la versión de depuración" );
}
Al cambiar la variable DEBUG a false, el compilador no agregará el codigo dentro de los ifs porque va a identificar que nunca se va ejecutar debido a que nuestra bandera de depuración no va a cambiar su valor en tiempo de ejecución al ser public static final.
Si desea comprobar que en verdad no se esta agregando el código al archivo .class, simplemente hágale un grep buscando alguna cadena de mensaje que este dentro de los ifs de depuración.
Posteado en Java | No hay comentarios »
Posteado en Arqueología Machinesca, Java, Videojuegos | No hay comentarios »
Posteado en Arqueología Machinesca, Java, Personal, Videojuegos | 2 Comentarios »