2009-04-16 20 views
10

Soy relativamente nuevo en la programación de Java (alrededor de 2 años) pero no para el desarrollo web. Comencé con HTML y ASP (pre .NET), y recientemente comencé a jugar con J2EE. Siento que tengo una buena comprensión de JSP/Servlets (creo que son similares a ASP) y recientemente comencé a trabajar con JSF y Facelets. Aunque puedo ver por qué a la gente le gustaría JSF, considero que es una gran carga y en realidad está ralentizando mis tiempos de desarrollo. Me imagino que esto se debe a la curva de aprendizaje, pero a menudo me encuentro pensando que terminaría con una página/tarea si solo estuviera usando JSP/Servlets.¿Los frameworks web de Java realmente valen la pena?

¿Es esto común para aquellos de ustedes que se han tomado el tiempo de aprender un marco? ¿Alguna vez ha invertido tiempo en aprender un marco y una vez que fue hábil en él, simplemente decidió volver a un método que no era tan sofisticado pero con el que se sentía cómodo?

También estoy cuestionando si he elegido el marco adecuado. Realmente esperaba encontrar algo que no interfiriera con la adición de capacidades AJAX.

Respuesta

12

JSF puede ser difícil de empezar, y es más difícil de aprender que muchos frameworks web Java. Puede que le resulte más fácil usar JSF con Seam, lo que simplifica gran parte de cómo trabaja con JSF, y reemplaza a JSP con Facelets, que es una gran mejora.

Alternativamente, podría probar SpringMVC, que a mucha gente le resulta más fácil de usar.

+1

Encontré que la curva de aprendizaje JSF es MUY empinada, pero cuando descubrí cómo usarla, realmente me gustó. –

+0

Yo en segundo lugar.Muy difícil de aprender, pero una vez que lo tienes, es una gran herramienta. –

+1

+1 de acuerdo, agregue ajax además de eso y querrá asesinarse a usted mismo en poco tiempo. – Alex

5

He estado utilizando facelets durante poco más de un año. Una de las principales ventajas que veo en los frameworks web de Java es que ayuda a mantener el código limpio y promueve la reutilización. Por ejemplo, en facelets, no obtienes scriptlets en tus páginas como lo haces en JSP. He visto archivos ASP en producción que tienen más de 3000 líneas de longitud. No hay nada intrínsecamente incorrecto con ASP o JSP, pero hace que sea bastante fácil agrupar cierta lógica comercial en la página. No hay daño, ¿verdad? Hasta que alguien más tenga que mantenerlo.

La mayoría de los marcos intentan 'ayudarlo' a mantener una separación más estricta de MVC o del modelo que prefiera, lo que a su vez genera plantillas más limpias (jsp, facelets, lo que sea) y códigos comerciales y de dominio que se pueden probar automáticamente por unidad. Usar muchos de los frameworks puede tomar un poco más de tiempo por adelantado, pero le ahorrará muchas veces eso cuando se trata de mantenimiento y refactorización.

1

Creo que la respuesta fácil es: ¿cómo la probará y verificará que funcione cuando realice cambios?

Aquí es donde se rompen las soluciones fáciles, y terminas en un infierno de mantenimiento. Por desgracia :(

0

SpringMVC vale la pena la molestia. J2EE no lo es.

+0

¿Por qué J2EE no vale la molestia? JEE es mucho menos complicado que J2EE, pero incluso J2EE tiene sus usos. – vickirk

1

creo que esto depende de si el marco genuinamente resuelve un "problema difícil" para usted, y lo resuelve fácilmente. Las personas siempre encuentran esto un terrible algo controvertido que decir por alguna razón, pero la mayoría de los marcos que he considerado usar he terminado abandonando la mitad porque es más fácil escribir algún código para hacer exactamente lo que quiero.

Más tarde, cuando tenga un problema en mi código, puedo ir a donde está el problema y agregar una línea de código para solucionarlo, en lugar de recorrer páginas de documentación para encontrar el parámetro de configuración mágica. Si tengo un problema con (inserte el marco favorito), generalmente me doy cuenta de que estoy buscando por años cuando el problema subyacente que se supone que debe resolver el marco nunca fue tan complicado en primer lugar.

Mis frameworks inútiles preferidos son los que requieren mucha configuración y código repetitivo torpe para realizar tareas básicas como enviar algunos bytes en un socket o rellenar algunos parámetros en una declaración preparada y activarla en una base de datos. Otro de mis favoritos es la gran cantidad de "tecnologías XML", especialmente las que son "conectables" o "configurables". (¿Por qué quiero un "marco de análisis acoplable" en lugar de solo un analizador que siempre funciona ...?) Llámame Victor Meldrew, pero es sorprendente cómo la gente puede convertir un problema de expresión regular de 10 minutos en un proceso de 2 días. "Do-you-make-this-framework-with-X-in-the-title-do-it".

Dicho esto, hay personas que prosperan absolutamente en Spring, Hibernate, JSF, MVCJammer, Joomajamaventilate, cosas con 'X' en ellos, etc. etc. Claramente para algunas personas en algunas situaciones, son un milagro, y me estoy perdiendo de la vida.

Posiblemente depende de si usted o su organización tienen principalmente "configuración" y "conectar cosas juntas" expertese o "programming" expertese? Supongo que tengo más de lo último.

1

Mi consejo: póngase cómodo con muchos marcos diferentes, y sepa cómo ensuciarse las manos y escríbalo usted también. Desarrollará algunas formas favoritas de trabajar, pero comprenderá bien qué pueden hacer las herramientas y qué no. Y también desarrollará un ojo para cuándo es el momento adecuado para usar un marco y cuándo es el momento adecuado para hacerlo.

He encontrado que JSF y Facelets definitivamente valen la pena, si puedes sobrevivir a la curva de aprendizaje. Es bastante empinado, pero cuando lo resuelves, es muy fácil trabajar con él. Hacen que la administración de la sesión y los objetos del alcance de la aplicación sean mucho más fáciles de tratar que solo JSP y servlets sin procesar, y he descubierto que puedo escribir Java más limpio cuando no tengo que pensar en la web en la lógica de negocios. En general, encuentro que los marcos me ayudan a organizar mis pensamientos (y, por extensión, mi código) de una manera consistente y fácil de entender.

Facelets, en particular, es mi motor de plantilla web favorito. Me encanta el hecho de que mis páginas sean válidas XML, y que no tengo scriptlets por todos lados. Hace que el código sea mucho más limpio y más fácil de seguir si conoce el marco. Hay esa curva de aprendizaje de nuevo.

Por cierto, agregar AJAX a Facelets es fácil si utilizas algo como RichFaces o IceFaces. Han pre-construido componentes ajax que puedes agregar fácilmente a tu aplicación.

Dicho esto, no es el mejor para todos los proyectos, YMMV, etc. Al final del día, usar cualquier marco es una decisión. Si no te ayuda a resolver tu problema, entonces no vale la pena. No pelees con tus herramientas, úsalas correctamente. Si la herramienta está en su camino, use una herramienta diferente. JSF y facelets realmente no son buenas opciones en una aplicación muy pequeña. Realmente no entran en juego hasta que tenga un modelo de dominio bastante complejo y una lógica empresarial compleja. Básicamente, necesita que el proyecto sea lo suficientemente complicado como para superar la cantidad de código repetitivo que necesita para comenzar.

1

I second SpringMVC. Es muy fácil de comprender, y el código es muy semántico si usa annotations. Como esos Budweiser commercials ... Servlets es demasiado liviano ... Struts es demasiado pesado.

Ojalá Java tuviera Andamios. Puede con Grails, pero ese es otro marco para incrustar dentro de un marco.

Cuestiones relacionadas