Ich bin neu bei StackExchange, aber ich habe mir gedacht, dass Sie mir helfen können.
Wir erstellen eine neue Java Enterprise-Anwendung und ersetzen eine ältere JSP-Lösung. Aufgrund vieler Änderungen werden die Benutzeroberfläche und Teile der Geschäftslogik komplett überarbeitet und neu implementiert.
Unser erster Gedanke war JSF, wie es der Standard in Java EE ist. Anfangs hatte ich einen guten Eindruck. Aber jetzt versuche ich, einen funktionalen Prototyp zu implementieren, und habe einige ernsthafte Bedenken, ihn zu verwenden.
Zuallererst erzeugt es den schlimmsten, überladensten ungültigen Pseudo-HTML / CSS / JS-Mix, den ich je gesehen habe. Es verstößt gegen jede einzelne Regel, die ich in der Webentwicklung gelernt habe. Darüber hinaus wirft es zusammen, was noch nie so eng miteinander verbunden sein sollte: Layout, Design, Logik und Kommunikation mit dem Server. Ich verstehe nicht, wie ich diese Ausgabe komfortabel erweitern kann, ob mit CSS gestylt, UI-Bonbons hinzugefügt (wie konfigurierbare Hotkeys, Drag-and-Drop-Widgets) oder was auch immer.
Zweitens ist es viel zu kompliziert. Die Komplexität ist hervorragend. Wenn Sie mich fragen, ist es eine schlechte Abstraktion grundlegender Webtechnologien, die am Ende verkrüppelt und nutzlos ist. Welche Vorteile habe ich? Keine, wenn Sie darüber nachdenken. Hunderte von Bauteilen? Ich sehe zusätzlich Zehntausende von HTML / CSS-Snippets, Zehntausende von JavaScript-Snippets und Tausende von jQuery-Plug-Ins. Es löst wirklich viele Probleme - wir hätten es nicht, wenn wir JSF nicht verwenden würden. Oder das Front-Controller-Pattern überhaupt.
Und schließlich denke ich, dass wir in zwei Jahren von vorne anfangen müssen. Ich verstehe nicht, wie ich unser erstes GUI-Modell implementieren kann (außerdem haben wir keinen JSF-Experten in unserem Team). Vielleicht könnten wir es irgendwie zusammen hacken. Und dann wird es noch mehr geben. Ich bin sicher, wir könnten unseren Hack hacken. Aber irgendwann werden wir stecken bleiben. Aufgrund von allem, was darüber liegt, hat die Serviceebene die Kontrolle über JSF. Und wir müssen von vorne anfangen.
Mein Vorschlag wäre, eine REST-API mit JAX-RS zu implementieren. Erstellen Sie dann einen HTML5 / Javascript-Client mit clientseitigem MVC. (oder etwas Geschmack von MVC ..) Übrigens; Wir werden die REST-API sowieso brauchen, da wir auch ein teilweises Android-Frontend entwickeln.
Ich bezweifle, dass JSF heutzutage die beste Lösung ist. Da sich das Internet weiterentwickelt, verstehe ich wirklich nicht, warum wir diesen "Rechen" verwenden sollten.
Was sind nun die Vor- und Nachteile? Wie kann ich betonen, dass ich JSF nicht verwenden soll? Was sind die Stärken von JSF gegenüber meinem Vorschlag?