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.
- ¿Dónde puedo ir en línea para escribir una carta?
- ¿Qué tipo de trabajos están disponibles para los abogados en la ONU?
- ¿Cómo es tener un doctorado y trabajar en un trabajo de baja habilidad no relacionado con su área de estudio? ¿Fue por elección o circunstancia? ¿Cuáles son las compensaciones? ¿Cómo te las arreglas en ese entorno?
- Estoy haciendo mi segundo año en ingeniería. Todavía dependo del dinero de mis padres para mis necesidades. ¿Qué puedo hacer ahora para ganar algo de dinero mientras estudio?
- ¿Debo solicitar un trabajo mejor cuando ya tengo un trabajo excelente? Acabo de comenzar hace unas semanas y soy un nuevo graduado.
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?