Yo tambien hice un Web Framework
A menudo encuentro en javahispano articulos y noticias en las que se termina en una lucha encarnizada entre amantes de un web framework y los de otro.
Si ampliamos ademas de los de java, añadimos los de otros lenguajes rubi, pyton, php, c# etc nos encontramos con que el principal problema no es que los framework sean malos, sino que el desarrollo para web que no esta bien enfocado.
Los navegadores no son compatibles, si añadimos los diferentes dispositivos, no solo navegadores puede ser una locura, (incluyo como dispositivo a Flex).
La solucion puede estar en el navegador neutro, pero impide que nuestro sistema sea minimamente atractivo.
Hace mas de 10 años los desarrolladores de C y otros lenguajes nos encontramos con este problema al desarrollar para diferentes sistemas operativos Windows, Solaris, Linux, Mac OS, ... y alguien de Sun nos saco del problema, por suerte para todos.
Actualmente, intentamos con diferentes framework, lenguajes atacar un problema que es de base. Casi todos hemos tenido que apañar un framework o hacerlo desde cero.
El navegador es un renderizador de tags imprevisibles y a los programadores no nos gustan los tags sino que preferimos lenguajes previsibles, por otro lado los programadores no somos especialistas del buen gusto con lo que los diseñadores son los que se encargan de marcar esa linea de trabajo, pero esa delgada linea esta muy difuminada y nos encotramos con los diseñadores programadores o los programadores diseñadores, para colmo añadimos a la equacion que haya base de datos y complejos procesos bajo las sencillas paginas, lo que tiende a complicar mas el sistema.
Que debe hacer un framework, partir el sistema en dos, por un lado el cliente, por otro los procesos de negocio, pero permitir que esten acoplados en base a eventos, actualmente conocemos algunos que realizan esto a la perfeccion. La opcion de enviar los datos en SOAP, REST XML o en bytes debe ser a nivel de framework, desconocida para el desarrollador. Vamos un framework debe ser MDA, yo puedo desarrollar lo mismo independiente de si luego va a C#, java ...
En el lado del servidor el acceso a los datos, debe estar encapsulado, permitiendo que los expertos en Base de Datos optimizen ese acceso si fuera necesario, los mecanismos de cache deben ser administrados sin afectar a los desarrollos.
Ademas, el sistema debe ser prefectamente monitorizable, debo saber que es lo que se esta ejecutando en cado momento, en algunos sistemas esto es imposible.
Por supuesto, debe ser optimo y facilmente escalable, con lo cual el tema de sesion tiene que ser facilmente customizable.
En el lado del cliente, debe haber custom tags para todo, permitiendo al diseñador manejar las mismas desde sus herramientas favoritas.
El punto conflictivo esta en el manejo de los eventos, cuando algo se ejecuta en local y en remoto y sobre todo porque para hacer algo hay que manejar 3 lenguajes o mas.
XML para configuracion, SQL para base de datos, en algunos casos Cobol heradado, Java para el servidor, XML-SOAP para el interfaz, JavaScript para el control de eventos y la programacion en el lado del cliente, HTML para el interfaz ...
Como vereis expertos de todo suelen ser expertos solo en algo, y quien mucho abarca poco aprieta por lo que si el desarrollador del framework tiene mas experiencia en alguna de estas capas, o por el contrario menos en otras, suele ser su punto mas debil.
El dia que microsoft y firefox saquen librerias de tags suficientemente expresivas y previsibles, con un sistema de eventos facil y programable en un lenguaje del lado del servidor, con llamadas transparentes al servidor, dejaremos de hacer framework y haremos aplicaciones.
Yo tambien hice un framework y lo que en su dia parecia una buena idea, ahora no lo haria, pero lo mas importante es aprender de los errores y sacar adelante los proyectos.
Posted at 12:27PM dic 06, 2008 by Batch for the Java TM in General | Comentarios[7]
Esta imagen te puede interesar:
http://gojko.net/images/framework.jpg
Enviado por logongas en diciembre 06, 2008 a las 11:52 PM GMT+01:00 #
hablamos de hace 7 años, es mucho en informatica.
Enviado por batch4j en diciembre 08, 2008 a las 05:41 PM GMT+01:00 #
No era por criticarte, era simplemente pq resumía de forma divertida tu última frase.
Además yo soy de los locos que aun me estoy haciendo mi propio Framework desde cero.
Enviado por logongas en diciembre 08, 2008 a las 09:48 PM GMT+01:00 #
Supongo que si tuvieras que hacer tu framwork desde cero, utilizarias algunas de las mejoras disponibles desde cero sin meterlas a posteriori con calzador.
Un tema que me paso fue que por motivos del cliente tuvimos que utilizar EJB por que si, luego se ha dado el caso de que no fue buena idea, ya que al no hacer falta engorrinaban el codigo.
Otro tema que nos paso fue que tuvimos que montar la cache fuera de la arquitectura lo que nos da quebraderos de cabeza.
Otro tema para mi importante es que separamos la logica de negocio de la presentacion pero a nivel de empresas , cada empresa monto por separado cada capa y la de presentacion en vez de includes, taglib etc, lo que tenia era cientos de copy/paste dificil de mantener,
Seguramente est ultimo error no lo volvere a cometer, habra arquitectura en todas las partes del framework.
Bueno eso son mis batallitas seguro que tienes alguna mas.
Enviado por batch4j en diciembre 09, 2008 a las 07:35 PM GMT+01:00 #
Mis objetivos son mas modestos, el framework lo utilizo en clase para que aprendan a programar.Así que no intento que esté optimizado sino que sea lo más sencillo posible de usar.
Respecto a batallitas lo peor de todo es la parte de presentación con el CSS y JavaScript. El JavaScript si te metes en profundidad al final aprendes y no tiene mucho misterio pero con el CSS, es que no puedo con él.
Enviado por logongas en diciembre 11, 2008 a las 06:11 PM GMT+01:00 #
Enviado por diseño web en marzo 20, 2009 a las 10:16 PM GMT+01:00 #
Enviado por diseño paginas web en mayo 09, 2009 a las 07:10 AM GMT+01:00 #