Помогите выбрать основанный на Java компонент веб-фреймворк - PullRequest
2 голосов
/ 31 января 2011

Мне интересно попробовать и изучить основанную на компонентах веб-среду.В настоящее время у меня есть только опыт работы с основанными на действии средами, такими как Spring MVC и Grails.Я выбираю между: JSF 2.0, калиткой и гобеленом.

Буду признателен за помощь в понимании:

  1. Какое из трех «легче всего» выучить?
  2. Какой из трех обладает лучшими / наиболее полезными(книги, веб-сайты, книги) доступны?
  3. Какой из трех имеет наибольшую стабильность с точки зрения кода (совместимость в прошлом и будущем) и сообщества
  4. Какой из трех предлагает наибольшую производительность /Наименьший ресурс (процессор и память) голоден?

Спасибо!

Ответы [ 7 ]

7 голосов
/ 01 февраля 2011

Я думаю, вы должны начать с проверки перестрелки веб-фреймворка Java, которую Мэтт Райбл недавно скомпилировал и обновил:

Лично я - пользователь Гобелена начиная с версии 3 :) и использовал все из них.Хотя сделать Tapestry 4 обратно несовместимым с 3, затем 4.1 несовместимым с 4 и, наконец, 5 несовместимым с остальными, было очень тяжело для разработчиков, я думаю, что это было к лучшему.Tapestry 5 лучше, чем любая предыдущая версия во всех аспектах, и теперь участники продолжают добавлять интересные функции наряду с хардкорными улучшениями, не нарушая обратной совместимости.

Что мне больше всего нравится в Tapestry 5, так это то, что вы можете заменить почтилюбая часть фреймворка с вашей собственной реализацией - она ​​настолько гибкая и настраиваемая.

Еще одна вещь, которая меня радует, это то, что участники Tapestry очень сосредоточены на том, чтобы сделать меня более продуктивным (как разработчиком), внедряя всевозможные реализацииизящных компонентов / функций.

Но это только мои эмоции, и в конце концов, я бы сказал, что не имеет значения, кто ест меньше памяти или имеет больше книг.Важно то, что делает вас / вашу команду счастливее, мотивированнее и продуктивнее, и единственный способ выяснить это - попробовать каждый из них:)

7 голосов
/ 01 февраля 2011

Мои личные предпочтения - Гобелен. Тем не менее, эффективность программиста является моим основным критерием. Если это для вас самый важный критерий, вы, вероятно, захотите использовать что-то еще, например JSF 2.0.

  1. Я нашел Гобелен достаточно простым в изучении, но у меня был опыт работы с WebObjects. Если, например, вы только программировали на Struts, вам, вероятно, будет немного сложнее.

  2. Большинство людей изучают Гобелен через список рассылки. Сообщество очень полезно, а архивы очень полезны. (http://tapestry.markmail.org) Только что был сделан большой толчок, чтобы действительно улучшить пользовательскую документацию Tapestry по адресу http://tapestry.apache.org, и результаты были выдающимися. Если вы хотите узнать о количестве книг, выполните поиск в Amazon. JSF 2.0 и Spring MVC, вероятно, будет иметь наибольшее количество книг.

  3. Tapestry 5 была очень стабильной с точки зрения возможности обновлять приложения с 5.0 до 5.1 до 5.2 с минимальными проблемами. Несколько (вокальных) людей жалуются, что не могут обновить приложения Tapestry 4 до Tapestry 5. Лично я предпочел бы иметь дело с фреймворком, который имел чистую отправную точку и скорее опирался на опыт предыдущих версий чем кодовая база предыдущих версий. Если ваша цель состоит в том, чтобы выбрать платформу с большим количеством унаследованного кода в дикой природе (например, если вы хотите провести консультации, чтобы помочь компаниям с их существующим кодом), то вам, вероятно, стоит взглянуть на Struts.

  4. Производительность обычно во многом зависит от того, что вы хотите сделать с фреймворком, поэтому я не могу дать вам конкретного ответа. Я еще не видел ни одного сравнения фреймворка, где весь код написан людьми, которые специализируются на этой конкретной фреймворке. Это означает, что тесты настолько просты, что ничего не говорят о реальной практике, или они настолько сложны, что результаты искажают те рамки, которые испытатель испытывает больше всего.

    Если вы не пытаетесь создать что-то вроде eBay, вы, вероятно, можете заставить любую из этих платформ работать хорошо. Учитывая, насколько дешевое оборудование, вам, вероятно, лучше выбрать тот, который обеспечивает максимальную эффективность работы программиста.

5 голосов
/ 07 февраля 2011

Единственно правильный ответ таков: иди и попробуй все из них в небольшом примере приложения. Но в качестве своих предпочтений я бы выбрал Гобелен 5.

Ad1. Это довольно легко учиться. Со временем он получил достаточно материалов, чтобы научиться им пользоваться. Кроме того, список пользователей велик, и люди очень отзывчивы.

Ad2. Возможно, JSF победит в конце в категории учебных материалов, так как это стандарт Java.

Ad3. Я бы не считал гобелен 5 отсталым несовместимым. Это разные рамки, чем T4 и T3. Так получилось, что он имеет одно и то же имя;) И t5 стабилен и поддерживает предыдущие версии более 2 лет.

Однако это также выиграет JSF. Это стандарт Java и то же самое, что и Java, он будет обратно совместим в течение следующих 100 лет.

ad4. Это зависит от того, кто тестирует приложение и как он реализует функции. Но здесь JSF идет последним, насколько я помню.

Преимущество T5 в том, что любая библиотека компонентов будет совместима с любой другой библиотекой. Это не может быть правдой для JSF. Я считаю, что простые лица не могут быть объединены с ледяной поверхностью или любой другой реализацией.

Но из этих 3 я использовал только гобелен в реальном проекте. Злой выглядел хорошо, но я предпочел Гобелен. Что касается JSF после 1.2, я не хочу пробовать новую версию, пока мне не придется. Также Tapestry - это просто отличная структура, которая соответствует моим потребностям.

Также подумай о своем боссе. Они всегда хотят что-то со знаком стандарта. Вот почему всегда лучше выбрать самую старую версию Struts, java 1.4 и JSF: /

С уважением Михал

1 голос
/ 25 февраля 2011

Я провел некоторое время, читая о Гобелене. Я считаю, что это немного лучше, чем я думал об этом раньше. На самом деле между Tapestry и HybridJava очень много общего. Это займет некоторое время, но я надеюсь дать более подробное сравнение здесь позже.

1 голос
/ 03 февраля 2011

Это интересные критерии для выбора основы.Обычно ваш реальный опыт программирования будет важнее, чем количество книг.Критерии «простота в освоении» могут иметь некоторый смысл, но если для фреймворка требуется на 10 часов больше предварительных инвестиций, но это экономит вам 10 часов в неделю на программирование, то оно того стоит.

Если вы действительно хотите найти подходящее для вас решение, то, вероятно, лучше пойти дальше и написать небольшое приложение в ряде различных сред.

Проблема этого подхода заключается в том, что, если у вас нет времени, чтобы хотя бы частично освоить каждую среду, ваше мнение будет искажено в зависимости от того, с чем вы наиболее знакомы.

1 голос
/ 31 января 2011

Я бы сказал, калитка или Ваадин.

https://cwiki.apache.org/WICKET/wicket-reference.html

http://www.vaadin.com/

  1. Легче всего учиться: если вы знаете свинг, вам будет легче понять. действителен для обоих.

  2. У калитки, вероятно, больше ресурсов, чем у Ваадина. Список пользователей также очень активен и полезен.

  3. Оба довольно зрелые проекты. Совместимость в будущем важна, но я думаю, что коммиттеры сделают все возможное, чтобы выпустить их с наилучшими возможными обратными совместимостями.

  4. Это всего лишь предположение, и оно не основано на фактическом тестировании производительности: вероятно, wicket будет работать лучше, чем vaadin.

И последнее: с vaadin получить крутой / приятный на вид пользовательский интерфейс намного проще.

Для Гобелен, см. Ссылку ниже:

https://stackoverflow.com/questions/1303438/why-did-you-stop-using-tapestry

0 голосов
/ 01 февраля 2011

Прежде всего (и самое главное) те структуры, которые утверждают, что они фактически основаны на компонентах, могут сильно отличаться в том, что они подразумевают под компонентами. Это одно в Wicket, другое в JSF и совсем другое в Struts и так далее. Наиболее точное определение компонентов веб-приложения вы можете найти в HybridJava. Другие фреймворки просто не догоняют.

Кстати, HybridJava примерно в 5 раз легче освоить, чем Wicket - только около 15 страниц для чтения. Это также работает очень быстро с менее чем 19k фляги времени выполнения.

...