2010-10-11 20 views
23

Soy un desarrollador de Java, sin experiencia, pero estoy familiarizado con la mayoría de los conceptos razonablemente bien.¿Por qué debería aprender y usar puntales?

Recientemente construí un sitio web usando Tomcat/JSP (~ 30 páginas dinámicas). Cometí el nuevo error de incluir grandes secciones de la lógica central en el JSP, utilizando la racionalización de que es "solo un proyecto simple".

Lo aprendí de la manera difícil. Así que estoy reconstruyendo la aplicación ahora en el motor de la aplicación de google utilizando servlets y planeando usar Velocity para implementarlo usando un patrón de diseño Model-View-Controller.

También estoy buscando a Struts, pero no he usado el framework anteriormente.

¿Alguien me puede convencer por qué debería incorporar struts en este proyecto? ¿Realmente me va a comprar mucho para un proyecto de tamaño mediano de una o dos personas?

Hay un costo claro en una curva de aprendizaje adicional con puntal, ¿superarán los beneficios los costos? ¿O el uso de Velocity será suficiente para segregar la lógica? Opiniones?

+3

Struts es horrible. Si desea hacerse un favor, use Wicket (basado en componentes) o Spring MVC (basado en acciones). Ambos son marcos geniales e intuitivos. –

+6

Struts2 es muy diferente de Struts, y bastante similar a Spring MVC o Stripes (basado en acciones) – leonbloy

+7

Struts 1 está muy desactualizado. Struts 2 no es nada horrible. –

Respuesta

23

Me gustaría ver a más largo plazo que este proyecto. Como viste, la primera vez que usas cualquier tecnología es principalmente para cometer errores y aprender de ellos. Así que este primer proyecto probablemente no sea un ejemplo brillante del uso de Struts una vez que hayas terminado.

Usar Struts (y Tiles de lo que usted indica que era una preocupación principal: copiar y pegar JSP) será una excelente exploración de MVC "adecuada", es decir, le obliga a hacer cosas de una manera particularmente estructurada. que por casualidad aprecié mucho, era un gran fan de Struts.

Dicho esto, hay otras opciones, p. Spring contiene Spring MVC y mucho más. Si vas a invertir en superar una curva de aprendizaje, piensa en qué marco te beneficiará más en general a mediano plazo: ¿qué marcos tienden a buscar los empleadores en tu área, por ejemplo? En este momento, me gustaría ir con Spring, donde siento que el impulso es, pero Struts es muy bueno en lo que hace.

+1

Muy buena y descriptiva respuesta. +1 por eso. Y espero que cuando menciones a Struts, en realidad te refieras a Struts 2. –

+1

Gracias. ¡En realidad han pasado 5 años desde que usé Struts pero tengo buenos recuerdos! – Brian

11

Si va a aprender un marco, entonces recomendaría Spring MVC sobre Struts. La curva de aprendizaje no es demasiado pronunciada y hay muchos recursos de Spring disponibles en Internet.

Una vez que tenga la primavera en su lugar, encontrará que su aplicación es mucho más sencilla de mantener y admitir. También podrá agregar mejoras, como seguridad, mucho más fácil.

+0

Sí, yo también prefiero eso. –

3

¿Por qué debería aprender Struts? Mi respuesta es: porque los empleadores a menudo requieren conocimiento de ello, especialmente para el mantenimiento de proyectos anteriores. No hice ninguna medición precisa, pero creo que en mi región, JSF y Struts se utilizan con mayor frecuencia para el desarrollo de aplicaciones web.

Struts es un framework web bastante antiguo, y es bastante torpe escribir GUI modernas de AJAX, por lo que se crearon mejores frameworks. JSF es para mí un poco menos torpe, pero también tiene algunos problemas. Mis marcos web favoritos son Vaadin y GWT, pero no estoy sugiriendo nada para ti; debes tomar la decisión por ti mismo.

4

Aprender a separar la lógica es excelente. Puedes hacerlo sin usar Velocity, Struts o cualquier framework, y probablemente aprendas más acerca de lo que se necesita para hacer esta separación si primero lo intentas con ayuda mínima.

Aprender un marco (de hecho, múltiples marcos) también vale la pena, pero personalmente no elegiría Struts como primer marco a menos que sea el utilizado por su empleador o un posible empleador. Si su empleador está utilizando Struts, espero que sea Struts 2, ya que Struts 1 se está haciendo viejo.

El marco con el que más trabajo es Wicket, pero es un cambio radical respecto de lo que estás viendo actualmente. SpringMVC también merece una visita.

Si su empleador ya está haciendo un desarrollo web en Java utilizando un marco, intente aprender el marco que está realmente en uso, y solicite ayuda a sus compañeros para aprenderlo.

8

Primero: no dejes que el nombre te confunda: Struts2 y Struts son marcos muy diferentes.

Segundo: cambiar de JSP a Velocity puede ser una decisión buena o mala, pero ese no es exactamente el punto. El punto es cambiar de Model1 (nomenclatura bastante antigua, pero sigue siendo útil). Es decir, desacoplando su capa de vista de su capa lógica. (Puede usar JSP o Velocity para su capa de vista). Además, para decidir su capa de vista es solo una parte de su arquitectura: aún debe decidir quién procesará la solicitud y generará los datos que se enviarán a la vista. La opción más básica es usar servlets simples, pero, de nuevo, es mejor usar algún framework. Para esto, hay un lot of frameworks en Java. Los de "acción basada" son un subconjunto entre ellos, quizás el más simple de aprender. Entre ellos, el más antiguo es Struts; hoy, los más utilizados para nuevos proyectos son (sin ningún orden en particular) Struts2, Spring MVC y Stripes: son bastante similares.

Cuestiones relacionadas