Я новичок в StackExchange, но я подумал, что вы сможете мне помочь.
Мы создаем новое приложение Java Enterprise, заменяющее устаревшее решение JSP. Из-за множества изменений пользовательский интерфейс и части бизнес-логики будут полностью переосмыслены и реализованы.
Нашей первой мыслью была JSF, так как это стандарт в Java EE. Сначала у меня сложилось хорошее впечатление. Но сейчас я пытаюсь реализовать функциональный прототип, и у меня есть некоторые серьезные опасения по поводу его использования.
Прежде всего, он создает худшее, наиболее загроможденное недопустимое сочетание псевдо-HTML / CSS / JS, которое я когда-либо видел. Это нарушает все правила, которые я выучил в веб-разработке. Кроме того, он объединяет то, что никогда не должно быть так тесно связано: макет, дизайн, логика и связь с сервером. Я не понимаю, как мне было бы удобно расширять этот вывод, будь то стилизация с помощью CSS, добавление конфет пользовательского интерфейса (например, настраиваемые горячие клавиши, виджеты с перетаскиванием и т. Д.) Или что-то еще.
Во-вторых, это слишком сложно. Его сложность является выдающейся. Если вы спросите меня, это плохая абстракция основных веб-технологий, в конце концов искалеченных и бесполезных. Какие преимущества у меня есть? Нет, если подумать. Сотни компонентов? Кроме того, я вижу десятки тысяч фрагментов HTML / CSS, десять тысяч фрагментов JavaScript и тысячи плагинов jQuery. Это решает действительно много проблем - у нас не было бы, если бы мы не использовали JSF. Или шаблон фронт-контроллера вообще.
И, наконец, я думаю, что нам придется начинать сначала, скажем, через 2 года. Я не понимаю, как я могу реализовать весь наш первый макет GUI (кроме того, в нашей команде нет эксперта JSF). Может быть, мы могли бы как-нибудь взломать это вместе. И тогда будет больше. Я уверен, что мы можем взломать наш взломать. Но в какой-то момент мы застрянем. Из-за всего вышеперечисленного уровень обслуживания находится под контролем JSF. И нам придется начать все сначала.
Мое предложение было бы реализовать API REST, используя JAX-RS. Затем создайте клиент HTML5 / Javascript с клиентской стороной MVC. (или какой-то вкус MVC ..) Кстати; В любом случае нам понадобится API REST, так как мы также разрабатываем частичную оболочку Android.
Я сомневаюсь, что JSF является лучшим решением на сегодняшний день. Поскольку Интернет развивается, я действительно не понимаю, почему мы должны использовать эти «грабли».
Теперь, каковы плюсы / минусы? Как я могу подчеркнуть свою точку зрения не использовать JSF? Каковы сильные стороны, чтобы использовать JSF над моим предложением?
источник
Ответы:
Есть по крайней мере одна очень веская причина для рассмотрения JSF.
Это стандартная часть стека Java EE, и, следовательно, она будет доступна и будет работать во ВСЕХ контейнерах Java EE очень и очень долгое время. И поддерживается, без необходимости, если вы строго придерживались спецификации Java EE.
Если это беспокоит вас, то вы должны рассмотреть это. Большинство программного обеспечения живут дольше, чем думают их дизайнеры, особенно если их учитывать при написании.
источник
Похоже, вы уже определились с минусами, и с некоторыми из них я согласен (это недостаточно разделяет компоновку и логику, а получающийся HTML часто отвратителен), но не согласен с другими (если вы используете Facelets, которые я бы очень рекомендовал, тогда вывод обязательно должен быть действительным).
Итак, вот некоторые плюсы:
Но, конечно же, ни одно из этих преимуществ не настолько велико, что вам следует использовать JSF по сравнению с какой-то другой средой, с которой ваша команда уже имеет опыт работы.
источник
JSF - это адекватный веб-фрейм с поддержкой состояния для Java, который является стандартом, что означает, что он поддерживается "из коробки" многими крупными поставщиками (включая FOSS). Он имеет сильную поддержку сторонних библиотек (PrimeFaces, IceFaces и т. Д.). Тем не менее, он в сущности «ломает сеть» из-за своего состояния (и многих других вещей). Посмотрите сравнение Мэттом Рэйблом веб-фреймворков на основе JVM , JSF обычно приближается к последнему.
Редактирование - с помощью JSF 2.2 - вы можете начать утверждать, что он не разрушает сеть так сильно, как когда-то. На самом деле интеграция с HTML5 не так уж и страшна :-).
источник
У нас было устаревшее приложение JSP / Struts 1.0. Мы пропустили Struts 2, JSF и все остальное, что произошло после Struts 1, и перешли к Spring 3.0. Он имеет поддержку (и активное сообщество) для нашего списка пожеланий - Eclipse IDE, MVC и REST. Плюс мы отказались от нашего винтажного доморощенного Javascript / ajax для jquery.
YMMV, но весна была для нас гладкой миграцией.
источник