Имеет ли смысл использовать Google Web Toolkit (GWT) в качестве полноценной веб-платформы Java? - PullRequest
12 голосов
/ 13 апреля 2009

Меня интересует возможность того, что GWT может послужить основой для всего моего уровня представления.

Мне было бы интересно узнать, пытался ли кто-нибудь успешно или безуспешно это сделать, и смог бы убедить или убедить меня в этом.

Ответы [ 7 ]

7 голосов
/ 13 апреля 2009

Я работал с GWT около года назад. В то время это казалось отличной идеей с рядом предостережений:

  • У меня были проблемы с некоторыми частями API, которые, вероятно, были связаны с тем, что вы кодируете, как будто вы находитесь в Java, хотя на самом деле вы пишете для отдельно скомпилированной среды, которая действует как Java, поэтому вы делаете некоторые неправильные предположения (в этом случае, передавая вложенные значения в интерфейс). Я думаю, что был другой, переписывал мои ant-скрипты, чтобы использовать 32-битный jvm для компиляции gwt.
  • Я потратил немного времени, пытаясь настроить внешний вид - мы никогда не разворачивали готовый проект, поэтому я не уверен, сколько работы потребовалось бы, чтобы выйти на профессиональный уровень, но это выглядело (логично) как было бы сравнимо с настройкой интерфейса Swing. может быть немного более громоздким, визуально, чем HTML.
  • Поскольку ajax настолько скрыт от вас в конечном продукте, у меня были некоторые опасения по поводу того, что я мог бы сделать, если производительность была плохой.

При этом, безусловно, стоит поиграть, и мой опыт был давным-давно в интернет-годах, особенно учитывая, что он, вероятно, намного более зрелый сейчас. Стоит также отметить, что это совершенно другой (и обновляющий) способ разработки кода GUI из большинства сред MVC, и его стоит посмотреть, если только по какой-либо другой причине.

Мне кажется, что если вы создаете высоконагруженный профессиональный сайт с очень жесткими графическими требованиями, GWT, вероятно, не очень хороший выбор, в противном случае все в порядке.

2 голосов
/ 14 апреля 2009

Вы упомянули, что GWT будет обрабатывать презентационный уровень. Будете ли вы делать бизнес-уровень на Java тоже? Если это так, я бы хотел указать вам на IT Mill Toolkit , который делает именно это: это инструментарий, использующий GWT для визуализации его компонентов GUI, позволяющий вам выполнять ваши приложения полностью на Java. Я думаю, что термин, который он пытается монетизировать, это «RIA, управляемый сервером».

Я пришел из PHP, но мне сразу понравился инструментарий. Но, наверное, лучше, если я больше ничего не скажу и позволю вам самим принимать решения.

Отказ от ответственности: я работаю в IT Mill, хотя это не имеет отношения к моему мнению.

1 голос
/ 19 августа 2009

Мы разработали большое приложение HR Portal со всем уровнем презентации, выполненным в GWT. Бэкэнд это весна. Все это работает очень хорошо, и пользовательский интерфейс был очень хорошо принят. Очень важно, что нам легко добавлять новые функции и поддерживать приложение. Я думаю, что было бы намного сложнее сделать что-то сопоставимое и поддерживаемое с использованием библиотек Javascript.

Вам нужна какая-то клиентская среда, или вы в итоге напишите одну (как мы!): Наше приложение построено на GWT портлетах (с открытым исходным кодом).

Мы используем фрагменты HTML для создания оболочки приложения для различных развертываний, а макет каждой «страницы» хранится в файле XML.

1 голос
/ 14 апреля 2009

Мы сделали это для очень большого проекта, и, пока вы знаете, что это ограничения, сильные и слабые стороны, он прекрасно работает. Как ни странно, презентация была наименьшей из наших трудностей, так как мы сделали ее скины, как и на любой другой HTML-странице, используя CSS. Проект был запущен и работал без нареканий, поэтому у меня нет претензий.

Подводные камни, которые я нашел, вы можете найти здесь:

Самые большие ловушки GWT?

1 голос
/ 13 апреля 2009

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

В общем, у GWT есть (обычные?) Проблемы молодых технологий. Тем не менее, это действительно делает некоторые вещи действительно легкими, как Ajaxifying, как вы его назвали.

0 голосов
/ 03 сентября 2014

GWT сам по себе является библиотекой улучшения пользовательского интерфейса, а не фреймворком. Если вы используете его с Google App Engine, у вас есть базовая структура. (Это другая история, и пока я смотрел на нее, я решил не включать ее в нашу архитектуру).

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

Что касается ANT, проблем с 64-битным компилятором не возникает.

<- dir.GWTCompile - это каталог, содержащий GWT -> classpath

Что касается сгенерированного кода, это все, что есть в вашей войне, если вы хотите просмотреть его. (Это также открытый исходный код, так что вы можете посмотреть его там.)

Что GWT делает во время процесса компиляции: Он создает несколько копий библиотек JS для разных наборов браузеров (одна из причин может занять минуты для компиляции), вы можете добавлять / удалять их по мере необходимости. Это уменьшает JS-пакет, который должен быть загружен, и увеличивает скорость, так как он не должен иметь эти неприятности, если (EI) это еще, если (FF) это. Однако, когда вы выполняете локальную отладку (по крайней мере, в Eclipse), вам не нужно ждать, позволяя оставить это для сервера сборки (или когда вам нужно собирать и развертывать вручную (неандертальцы)).

Недостаток GWT. Поскольку это клиентская часть javascript (почти чисто), вы не можете использовать ее для вещей, которые ее не поддерживают или не поддерживают одну из версий. Так что для таких вещей, как iPad и iPhone, вы можете столкнуться с некоторыми проблемами, если не используете дополнительные библиотеки, предназначенные для преодоления этих пробелов (например, mgwt).

0 голосов
/ 14 апреля 2009

Хорошая информация об этом видео: http://raibledesigns.com/rd/entry/my_drunk_on_software_interview

...