¿Debería un desarrollador de Java aprender JSF? ¿Por qué?

Depende de la carrera que desee elegir. Aprenda JSF si:
1. Mantendrá aplicaciones heredadas que utilizan JSF como marco web.
2. Migrará sistemas escritos en JSF a tecnologías más nuevas.

El problema con JSF es que es una abstracción mucho más compleja que el modelo que querían abstraer (HTTP). En estos días, si está desarrollando nuevas aplicaciones, preferirá utilizar un marco basado en la acción (Spring MVC, Play! Etc.) basado en los principios REST o simplemente desarrollará servicios RESTful en el back-end y utilizará los nuevos marcos JavaScript brillantes. para desarrollar el front-end.

Entonces, ¿por qué JSF es malo?
– Crea un modelo con estado encima de un modelo sin estado. En consecuencia, utiliza la Sesión HTTP para almacenar el estado de visualización, lo que aumenta la huella de memoria de los servidores de aplicaciones, lo que dificulta la capacidad y la escalabilidad de las aplicaciones.
– Utiliza un esquema de navegación basado en solicitudes POST y almacena parámetros de una página a otra a través de argumentos de solicitud de sesión y POST (JSFViewState). Por lo tanto, los controles de su navegador (botón de retroceso, recarga de página) no funcionarán correctamente.
– Los componentes JSF básicos no pueden satisfacer todas sus necesidades, por lo que necesita bibliotecas de componentes externos (Primefaces, Rich Faces, Tomahawk, etc.). Pero adivina qué, no son muy compatibles entre sí.
– Utiliza un modelo complejo para manejar el estado de la página, basado en solicitud, vistas, conversaciones, flujo y sesión. Deberá comprender cada uno con mucho cuidado para no almacenar datos en la sesión sin necesidad y evitar fugas de recursos.
– Tiene un ciclo de vida de creación de vista muy complejo, y necesita comprender cómo funciona para no romper su aplicación. Características como la validación inmediata o de bean pueden causar un comportamiento muy extraño en su aplicación cuando se combina con solicitudes AJAX, por ejemplo.

Por supuesto, un desarrollador que conozca el desarrollo web, la depuración de javascript, los principios REST y un buen conocimiento del funcionamiento interno de JSF puede aliviar muchas de las deficiencias del marco. Y, en caso de problemas, solo pregunte a BalusC en el desbordamiento de la pila :). Pero, ¿por qué molestarse con JSF, cuando existen muchas soluciones más simples y potentes?

Personalmente no veo ninguna razón para molestarme. No tiene cabida en el desarrollo web orientado al consumidor. No puedo decir con certeza que no se utiliza en el desarrollo interno de la empresa, pero es una idea mal pensada y para la que parece no ser necesario. El proyecto JBoss Seam trató de solucionar algunos de los problemas con JSF, pero mi consejo sería: si no sabe que lo necesita porque su uso ha sido dictado por algún arquitecto empresarial, entonces aprenda algo más que usted es más probable de usar. Si JSF no está muerto, probablemente debería estarlo.

Tuve mi primer contacto con JSF en 2008 y podría resumirse con los siguientes adjetivos: sobre flujos complejos, lentos y complejos. Sé que hubo muchos intentos, principalmente por parte de Red Hat, para hacerlo más ligero y menos hinchado. Por supuesto, RH invirtió mucho en ello. Pero hoy en día los sitios usan una combinación de marcos Restful WS y JavaScript, entonces, ¿por qué molestarse con una tecnología ‘heredada’? Creo que todavía se usa en intranets, pero no veo ningún futuro para ello.

Si tienes tiempo definitivamente, pruébalo, al menos para descubrir de qué se trata. Si lo usará o no dependerá de si su futuro proyecto lo usa. El tiempo que pasas aprendiendo lo básico definitivamente valdrá más la pena que leer las respuestas a esta pregunta.

More Interesting

¿Cómo puede una persona conseguir trabajo en una empresa central privada decente?

¿Cuán importantes son las pasantías de segundo año para programas de pasantías de tercer año como DAAD-WISE, MITACS GLOBALINK, etc.?

¿Cuál es la mejor experiencia de impacto social que uno puede tener en India este verano?

¿Cómo es trabajar en la oficina de servicios globales de Ericsson India en Kolkata?

¿Cómo pueden los desarrolladores recopilar información para diferentes hoteles en todo el país y ponerla en un sitio sin tener que ir físicamente ciudad por ciudad?

¿Cuál es la forma de entrar en la carrera de actor en los EE. UU., Ya sea en la pantalla grande o en la pequeña?

¿Cuáles son los poderes de un subinspector de policía?

Cómo encontrar trabajo en un fondo de cobertura o banco de inversión en Londres (como desarrollador cuantitativo / de software, sin experiencia laboral previa en finanzas)

Acabo de terminar mi certificación de AdWords. ¿Qué debo hacer a continuación para seguir siendo relevante en el campo?

Mi hija pronto se graduará con una licenciatura en ciencias actuariales. ¿Quién contrata a alguien con ese tipo de grado?

Si quisiera convertirme en guionista y no renunciar a mi especialidad, ¿qué pasos debo seguir?

¿Los comisionados de servicio corto tienen derecho a instalaciones médicas y de comedor después de la jubilación?

Quiero hacer mi carrera en desarrollo web. Tengo poco conocimiento de HTML y CSS. ¿Qué lenguaje y marco serán más útiles en el futuro?

¿Debo seguir Ciencias de la Computación si no sé casi nada sobre programación o computadoras?

¿Debo hacer una maestría en matemáticas en lugar de física si quiero ser un físico teórico?