Java y Swing: Cuando el rehuso no es lo mejor
Ha pasado un rato bien largo desde que escribo en el blog; La razón principal es que he estado estudiando (en algún momento les comentaré para qué) y decidí concentrarme únicamente en eso y en el trabajo.
Cero distracciones.
Lo otro es que ahora estoy haciendo algo que no habia hecho antes: Aplicaciones de escritorio en Java. Si bien el lenguaje es el mismo, las implicaciones son diferentes de cuando se hace una aplicación del lado del servidor o aplicaciones web.
Los operadores de piso (traders) con quien trabajo empezaron nuevos negocios y varios de ellos pedian aplicaciones en Swing. Incialmente comenzé con una muy sencilla, escrita totalmente desde cero la cual recibe ordenes que los corredores de bolsa hacen las cuales deben ser aprobadas por los operadores (me disculpan si los términos no son exactos pero es que me da una flojera enorme de hacer spanglish :)). De allí alguien se dió cuenta que podía ayudarlos a acomodar la aplicación de trading principal.
En este caso, el componente que tenia problemas trabajaba bien ... hasta la 1:00 de la tarde. Después de allí fallaba por falta de memoria y los analistas no odian ver sus transacciones en tiempo real de ahi en adelante.
La aplicación original es impresionante, con un montón de aditamento que la hacen sofisticada aún el día de hoy, 5 años después que fué creada (la aplicación ha tenido varias reencarnaciones, cada una de ellas con más funcionalidad). El problema es que tiene capas, capas y más capas de código hecho en casa el cual ya no es compatible con Java 1.6 (de hecho, aún tenemos que correr la mayor parte de esta en una versión anterior de la máquina virtual).
¿Cual fué la solución? Me pidieron que volviera a escribir esa parte de la aplicación (sin otros detalles) en una tarde. La única forma que se me ocurrió fué escribirla a mi manera usando solamente Swing, ningún aditamento.
La aplicación comenzó como un prototipo, del cual todos estabamos algo temerosos (400 mil entradas al día y desempeño rápido eran los requerimientos). De allí cosas básicas como ordenar y ocultar columnas, filtros, exportar los datos a Excel (Si, si la aplicación tiene tablas) entre otros se portaron muy bien. Hubo que tener en cuenta problemas de concurrencia (ya que la aplicación es de alto número de transacciones, además de que debe mostrar todas las operaciones del dia, haciendo una repetición de todas las que hayan ocurrido antes de arrancar el programa).
El nuevo componente no sólo muestra 500 mil transacciones sin problema, sino que además es más rápido (ya lo usamos en días de alto volumen y con expiración de opciones. Trabajó sin chistar). Agregarle la funcionalidad de la aplicación vieja no fué tan difícil y resulta que ahora los operadores con los que trabajo se mudaron a la nueva aplicación.
Y aún sigo aprendiendo cosas nuevas de Swing. Lo último que descubrí es que soporta pieles, usando Synth y que la integración nativa con el escritorio ha mejorado mucho.
Supongo que esta es una de esas ocasiones en donde es mejor "quemar al rancho" y volver a construir desde cero.
Ya les comentare más, pero si quieren leer sobre mis andanzas estos días metanse en los foros de Java Swing de Sun :).
Buscar en otros sitios:
Blogalaxia:java, rehuso, swing, synth, preferences, desktop
Technorati:java, rehuso, swing, synth, preferences, desktop
To2blogs:java, rehuso, swing, synth, preferences, desktop
Del.icio.us:java, rehuso, swing, synth, preferences, desktop
Cero distracciones.
Lo otro es que ahora estoy haciendo algo que no habia hecho antes: Aplicaciones de escritorio en Java. Si bien el lenguaje es el mismo, las implicaciones son diferentes de cuando se hace una aplicación del lado del servidor o aplicaciones web.
Los operadores de piso (traders) con quien trabajo empezaron nuevos negocios y varios de ellos pedian aplicaciones en Swing. Incialmente comenzé con una muy sencilla, escrita totalmente desde cero la cual recibe ordenes que los corredores de bolsa hacen las cuales deben ser aprobadas por los operadores (me disculpan si los términos no son exactos pero es que me da una flojera enorme de hacer spanglish :)). De allí alguien se dió cuenta que podía ayudarlos a acomodar la aplicación de trading principal.
En este caso, el componente que tenia problemas trabajaba bien ... hasta la 1:00 de la tarde. Después de allí fallaba por falta de memoria y los analistas no odian ver sus transacciones en tiempo real de ahi en adelante.
La aplicación original es impresionante, con un montón de aditamento que la hacen sofisticada aún el día de hoy, 5 años después que fué creada (la aplicación ha tenido varias reencarnaciones, cada una de ellas con más funcionalidad). El problema es que tiene capas, capas y más capas de código hecho en casa el cual ya no es compatible con Java 1.6 (de hecho, aún tenemos que correr la mayor parte de esta en una versión anterior de la máquina virtual).
¿Cual fué la solución? Me pidieron que volviera a escribir esa parte de la aplicación (sin otros detalles) en una tarde. La única forma que se me ocurrió fué escribirla a mi manera usando solamente Swing, ningún aditamento.
La aplicación comenzó como un prototipo, del cual todos estabamos algo temerosos (400 mil entradas al día y desempeño rápido eran los requerimientos). De allí cosas básicas como ordenar y ocultar columnas, filtros, exportar los datos a Excel (Si, si la aplicación tiene tablas) entre otros se portaron muy bien. Hubo que tener en cuenta problemas de concurrencia (ya que la aplicación es de alto número de transacciones, además de que debe mostrar todas las operaciones del dia, haciendo una repetición de todas las que hayan ocurrido antes de arrancar el programa).
El nuevo componente no sólo muestra 500 mil transacciones sin problema, sino que además es más rápido (ya lo usamos en días de alto volumen y con expiración de opciones. Trabajó sin chistar). Agregarle la funcionalidad de la aplicación vieja no fué tan difícil y resulta que ahora los operadores con los que trabajo se mudaron a la nueva aplicación.
Y aún sigo aprendiendo cosas nuevas de Swing. Lo último que descubrí es que soporta pieles, usando Synth y que la integración nativa con el escritorio ha mejorado mucho.
Supongo que esta es una de esas ocasiones en donde es mejor "quemar al rancho" y volver a construir desde cero.
Ya les comentare más, pero si quieren leer sobre mis andanzas estos días metanse en los foros de Java Swing de Sun :).
Buscar en otros sitios:
Blogalaxia:java, rehuso, swing, synth, preferences, desktop
Technorati:java, rehuso, swing, synth, preferences, desktop
To2blogs:java, rehuso, swing, synth, preferences, desktop
Del.icio.us:java, rehuso, swing, synth, preferences, desktop



0 Comentarios:
Publicar un comentario en la entrada
Enlaces a este articulo:
Crear un enlace
<< Regresar