Я новачок у StackExchange, але я подумав, що ти зможеш мені допомогти.
Ми створюємо нову програму Java Enterprise, замінюючи застаріле рішення JSP. Завдяки безлічі змін, інтерфейс користувача та частини бізнес-логіки будуть повністю переосмислені та перевтілені.
Першою нашою думкою був JSF, оскільки це стандарт у Java EE. Спочатку у мене було гарне враження. Але зараз я намагаюся реалізувати функціональний прототип, і є деякі по-справжньому серйозні проблеми щодо його використання.
Перш за все, це створює найгірший, захаращений недійсний псевдо-HTML / CSS / JS мікс, який я коли-небудь бачив. Це порушує кожне окреме правило, про яке я дізнався в веб-розробці. Крім того, він об'єднує те, що ніколи не повинно бути так міцно поєднане: макет, дизайн, логіка та спілкування з сервером. Я не бачу, як мені вдалося б зручно розширити цей вихід, будь то стилізація за допомогою CSS, додавання цукерок інтерфейсу користувача (як настроювані гарячі клавіші, віджети з перетягуванням) чи будь-чого іншого.
По-друге, це занадто складно. Її складність видатна. Якщо ви запитаєте мене, це погана абстракція основних веб-технологій, каліка і марна врешті-решт. Які переваги у мене є? Ні, якщо задуматися. Сотні компонентів? Додатково я бачу десять тисяч фрагментів HTML / CSS, десять тисяч фрагментів JavaScript та тисячі плагінів jQuery. Це вирішує дійсно багато проблем - у нас не було б, якби ми не використовували JSF. Або взагалі шаблон переднього контролера.
І нарешті, я думаю, нам доведеться починати все, скажімо, через 2 роки. Я не бачу, як я можу реалізувати всі наші перші макети GUI (крім того, у нас в команді немає експерта JSF). Можливо, ми могли б якось їх зламати разом. І тоді буде більше. Я впевнений, що ми могли зламати наш хак. Але в якийсь момент ми застрягнемо. Завдяки всьому, що знаходиться вище, рівень обслуговування контролює JSF. І нам доведеться починати спочатку.
Моєю пропозицією було б реалізувати REST api, використовуючи JAX-RS. Потім створіть клієнт HTML5 / Javascript з MVC на стороні клієнта. (або якийсь аромат MVC ..) До речі; нам все одно знадобиться REST api, оскільки ми також розробляємо частковий фронтальний Android.
Я сумніваюсь, що JSF - найкраще рішення на сьогодні. По мірі того, як Інтернет розвивається, я дійсно не розумію, чому нам слід використовувати цей «граблі».
Тепер, які плюси / мінуси? Як я можу наголосити на тому, що не використовувати JSF? Які сильні моменти використовувати JSF над моєю пропозицією?