[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Herramienta de desarrollo web para aplicaciones Java
- To: mindfood@xxxxxxxxxxxxxxx
- Subject: Herramienta de desarrollo web para aplicaciones Java
- From: Jose San Leandro <jose.sanleandro@xxxxxxxxxxxx>
- Date: Thu, 22 Apr 2004 08:23:15 +0000
- Delivered-to: mailing list mindfood@orange-soft.com
- Delivered-to: moderator for mindfood@orange-soft.com
- Mailing-list: contact mindfood-help@orange-soft.com; run by ezmlm
- Organization: Ventura24
- User-agent: KMail/1.6.1
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hola a todos,
Estoy desarrollando un proyecto del cual me interesaría recibir opiniones y
sugerencias sobre el mismo.
El proyecto tiene como objetivo mejorar la velocidad en el desarrollo de
aplicaciones web, implementadas siguiendo la especificación de Java Servlet
API (2.2-2.4). En concreto, se centra en la capa de presentación, o lo que es
lo mismo, el desarrollo y pruebas de los casos de uso de la aplicación.
Partiendo de una aplicación enpaquetada como fichero ".war", se genera otro
fichero con el mismo formato, listo para ser desplegado o instalado en un
contenedor de servlets. Al instalarse, el desarrollador dispone de la misma
presentación de la aplicación original, a la que se le incorpora una serie de
funcionalidades adicionales. Es conveniente indicar que no se hacen
suposiciones sobre las tecnologías utilizadas por el desarrollador.
Asimismo, la herramienta es compatible con la tarea <war> de Ant (e incluso la
supera en algunas características, como la posibilidad de usar "paths" en
lugar de "zipfilesets" para los contenidos), con lo cual pueden ser
intercambiadas en función del entorno en el que se va a desplegar.
Básicamente, a alto nivel, ésa es la descripción general de la herramienta,
cuyo nombre es WebExtension (al menos por el momento).
Actualmente (versión 0.3), voy a comenzar a analizar y desarrollar las
distintas funcionalidades que pueden ser de utilidad para un desarrollador
(potencialmente también para un diseñador).
Inicialmente (es decir, la primera versión funcional, 0.4) , la herramienta
incluirá:
- -Visualización de datos de entorno de la máquina virtual;
- -Visualización de datos presentes en la petición (request) y sesión (en este
caso se dispondrá la posibilidad de modificación de los mismos);
- -Visualización de las comunicaciones HTTP, y gestión de las cabeceras que
recibe la aplicación original (independientemente del navegador usado),
incluyendo la opción de habiilitar/deshabilitar cookies.
- -Ejecución de código Java "en caliente", mediante la edición de scripts
BeanShell.
- -Medidas simplistas de las peticiones realizadas a la aplicación: consumo de
memoria y tiempo de respuesta.
- -Visualización del código fuente de las urls de la aplicación (ficheros jsp,
vm, etc.).
Para versiones posteriores, tengo en mente, además, las siguientes
funcionalidades:
- -Intérprete SQL;
- -Grabación de "macros";
- -Posibilidad de exportar macros a JMeter para realizar pruebas funcionales y
de carga sobre la aplicación, de forma desatendida;
- -Detector de memory leaks (muy rudimentario, ejecutando macros repetidamente y
evaluando el incremento de memoria);
- -Navegador JNDI;
- -Validador w3c (aunque no sé si es posible por razones de licencia);
- -Gestión de errores de la aplicación original, con la posibilidad de
integración con sistemas de bug-tracking.
También es posible ofrecer funcionalidades de profiling, para visualizar qué
parte del código de la aplicación se ejecuta y cuánto tiempo le lleva, pero
para eso podría ser necesario tener acceso al código fuente (o bien hasta que
AspectJ sea capaz de recibir bytecode como entrada), por lo que habría que
estudiarlo separadamente.
Otro punto a resaltar es que, inicialmente al menos, las vistas de la
aplicación original no son procesadas. El incremento de complejidad que
conlleva dicho procesamiento podría ser útil para ofrecer opciones como:
- -Habilitar o deshabilitar Javascript;
- -Resaltar tablas HTML (cambiar el atributo border);
- -Resaltar imágenes (que podrían indicar también atributos como dimensiones o
tamaño).
Asimismo, en un estado más avanzado de ambos proyectos, se podrán integrar
WebExtension y QueryJ, de forma que el desarrollador tenga acceso a qué
sentencias SQL se van realizando conforme navega por su aplicación original,
así como cuánto tardan.
Me gustaría recibir sugerencias sobre qué puede resultar más útil (y por tanto
conveniente de implementar antes), así como nuevas ideas que no estén
contempladas en la lista anterior. También me sería útil cualquier
recomendación o sugerencia sobre cómo modelar las funcionalidades: definición
del concepto de plug-in, resolución de los mismos, configuraciones
específicas para cada uno, etc.
Las vistas de la herramienta, independientemente de la aplicación original, se
implementan utilizando CSS2 en conjunción con Tiles, por lo cual se pueden
realizar modificaciones en el estilo y estructura de las vistas sin ningún
esfuerzo (proporcionando 3 ficheros).
Espero vuestros comentarios.
Un saludo,
Jose.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAh4DzCAvt6RF8M0cRAut3AJ9cJUnTJEXxrmuPqg4gslbHS+PdQwCgkeEY
dXQNjJBftq5aVeAycYffW4M=
=+015
-----END PGP SIGNATURE-----