¿Por qué no se debe desarrollar un sitio web con el marco Struts? ¿Y por qué debería?

Debería:
* Cuando necesita crear una aplicación web basada en el servidor Java JVM / Enterprise (aunque Struts es solo una de las muchas opciones para esto)
* Use un middleware java (pieza de código que necesita ser acoplada con la aplicación)
* Independencia de la plataforma: antes de que exista lo mismo para ruby ​​/ python, pero solo en un sentido limitado. Muchas bibliotecas de estos idiomas también sufren el mismo problema. Además, el número de plataformas compatibles con Java supera el de Ruby / Python
* Necesita un marco de MVC de propósito general que no sea obstinado hacia un enfoque particular: Rails y Django son muy obstinados y si no sigue la convención, básicamente está disparando a su pie.
* Estabilidad del código – Java no va a ningún lado – su mantenimiento es realmente bueno ya que hay más desarrolladores y desde el punto de vista de un desarrollador: cada problema está bien documentado y hay documentación completa disponible.
* Otras restricciones como la composición del equipo (afinidad de los desarrolladores hacia los frameworks Java MVC de código abierto)
No debería:
* Es una aplicación demasiado simple (en este caso, la aplicación de cualquier herramienta mvc es una exageración)
* Sigue un patrón de uso común – un blog o una wiki – use un CMS en este caso
* Si necesita un marco moderno con las mejores prácticas (los puntales clásicos son desde 2001 y los puntales 2 desde 2006 o algo así) que tienen una comunidad vibrante (un nuevo enfoque de rieles generalmente se generaliza en 2-6 meses en la comunidad, pero lo hará todavía veo muchos equipos que no usan generadores para la aplicación / configuración de struts autogenerados) y están en desarrollo activo.
* Verbosidad: este es un problema para casi todos los frameworks / herramientas de Java en general, ya que se requieren toneladas de configuración.
* Velocidad (en desarrollo): este es un gran punto de dolor: debe escribir toneladas de código y luego otras toneladas de código repetitivo para desarrollar una característica en struts.

Te diré lo feliz que estaba cuando mis superiores decidieron cambiar de Struts a Django.

En primer lugar, el laberinto XML en Struts. Las estructuras son muy complejas. Créame, me tomó mucho tiempo encontrar el archivo XML que tiene la estructura de la base de datos. Al igual que Java, Struts necesita que el programador escriba una gran cantidad de código para que funcione. Por el contrario, Django tiene una estructura de directorio simple, una para cada aplicación, y los nombres de los archivos tienen el sentido adecuado.

Luego, conocí el comando syncdb, que crea la base de datos para usted en Django. Nada de eso en Struts.

Finalmente, la simplicidad. Alguien me desafió a encontrar la contraseña maestra para el sitio web en el marco de Struts. No pude, no en ese laberinto (o tal vez estaba almacenado en otro lugar por completo). Si hubiera sido Django, solo tenía que buscar la vista de inicio de sesión.

Dicho esto, si observa que la mayoría (si no todas) las pasarelas de pago están en Struts (el .do o .jsp en la URL lo dice). Quizás sea por el hecho de que Java es seguro o quizás sea algo que hacer con Apache Tomcat, pero a menos que esté haciendo algo así, sugeriría ir con Django. (Aunque aún es más fácil que Struts, configurarlo para un novato puede ser un poco frustrante al principio, pero los beneficios en el futuro son realmente buenos).

More Interesting

¿Qué crees que deben usarse una buena configuración / tecnologías para crear un SaaS de análisis web?

¿Cuáles son los beneficios, si los hay, de una interfaz de usuario basada en texto sobre una interfaz basada en web?

¿Cómo se almacenan las páginas web en los servidores?

¿Cómo se crea un entorno de mundo virtual en línea que la gente realmente usará?

¿Existe una aplicación de Twitter que le permita exportar los datos de sus seguidores a Excel, incluso si tiene más de 100,000 seguidores?

¿Cuál es la diferencia entre AppDynamics y Application Insights para Azure WebApps?

¿Qué necesitas para desarrollar una aplicación móvil o una aplicación web como Airbnb?

Cómo abordar un problema como construir una aplicación web para un campus escolar

¿Debo poner todo el código en mis controladores cuando estoy escribiendo una aplicación web?

¿Cuál es el desarrollo front-end, el marco web, el servicio del lado del servidor y del lado del cliente que escuchamos de los ingenieros de software?

¿Cómo crear un álbum de fotos creando una aplicación web como http://milkbooks.com, http://shutterfly.com http://blurb.com? Qué tecnologías se pueden usar para crear esta aplicación

¿Cuáles son los idiomas utilizados para desarrollar la interfaz de una aplicación web?

¿Cómo aborda Node.JS varias técnicas de piratería como la inyección SQL o las secuencias de comandos de sitios cruzados (XSS)?

¿Es una buena idea codificar una aplicación web y su API en una sola aplicación Laravel?

Si fuera la persona de SEO para un sitio web de tecnología, ¿qué haría para crear vínculos de retroceso para él?