Полезен ли Google Web Toolkit для разработки сложных сценариев JavaScript? - PullRequest
6 голосов
/ 06 января 2009

Я большой поклонник javascript-фреймворков, особенно jQuery. Я всегда хотел создавать сайты, такие как "plurk.com", но я знаю, что для этого нужны очень огромные строки javascript.so, которые меня закрыли. Но с тех пор, как я узнал GWT, я действительно хочу проверить это и спросить вас, облегчает ли наша работа разработку сложных вещей, чем с помощью javascript или его фреймворков. Какой из них вы бы предпочли?

Ответы [ 6 ]

22 голосов
/ 07 января 2009

Я думаю, что некоторые из ответов на этот вопрос совершенно не информированы, и я подозреваю, что отвечающие на них люди никогда не использовали GWT в крупномасштабных проектах. Да, GWT - отличный способ создания больших веб-сайтов AJAX, а для больших сложных сайтов, в том числе и с серверной частью, он запускает такие вещи, как JQuery, вверх и вниз по парку. Я всегда смотрю на это так, что сам по себе javascript отлично подходит для выполнения небольших задач на стороне клиента. Когда вам нужно сделать что-то более сложное (например, динамические поля, всплывающие окна, анимацию), вы вводите что-то вроде JQuery или Prototype. Если вы хотите сделать еще один шаг вперед, вы выбираете GWT.

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

Я также не покупаю теорию неплотной абстракции, она не пытается полностью абстрагировать элементы HTML, поскольку дает вам прямой доступ как к нативному javascript, так и к DOM, если вы решите их использовать.

Короче говоря, мы создали очень сложные сайты (один из которых был представлен в блоге GWT) в GWT, а также с использованием других библиотек, таких как JQuery. Я могу сказать вам со 100% уверенностью, что, как только вы разберетесь с GWT, это убьет эти другие фреймворки для сложных задач. Он также имеет несколько великолепных встроенных вещей, которые помогают сделать вещи лучше, и даже делает некоторые вещи, которые не поддерживает ни один другой фреймворк (например, волшебство, которое он может делать с изображениями). Смотрите этот блог для более подробной информации:

http://googlewebtoolkit.blogspot.com/2007/10/epo-builder-built-with-gwt.html

7 голосов
/ 06 января 2009

Мало что пугает меня, как "сгенерированный Javascript". Закон пропускающих абстракций должен быть вдвойне верным в этих случаях.

Написание эффективного кросс-браузерного JavaScript - сложный процесс непрерывного совершенствования. Попытка расшифровать, где какой-то сгенерированный скрытый Javascript работает неправильно, является большой головной болью. Достаточно плохо исправлять ошибки в чистых библиотеках JS.

Для меня GWT - это уловка, нацеленная на то, чтобы позволить разработчикам бэкэнда писать интерфейсный код в браузере. К сожалению, реалии современных веб-приложений означают, что вам просто нужно знать Javascript и DOM. Что-то сломается, и вам нужно будет знать, почему.

Я думаю, вам лучше выбрать хорошую библиотеку JavaScript, такую ​​как jquery или прототип, и хорошо ее изучить. Эти библиотеки абстрагируют от такого рода вещи, которые СЛЕДУЕТ абстрагировать, и вряд ли они сломаются в крайних случаях, таких как операции с массивами и запросы AJAX.

4 голосов
/ 06 января 2009

Да, это так, поскольку вы будете использовать Java, а не Javascript.

Превосходные IDE, статический анализ кода, поиск и рефакторинг - все это значительно облегчит вашу жизнь в крупных проектах.

3 голосов
/ 06 января 2009

Нет. Это не так.

Это не снимает сложности, оно просто позволяет вам иметь дело с ним с точки зрения Java. Так как это дает вам весь инструментарий, доступный из Java ... одно это может сделать его стоящим.

JavaScript IDE становятся все лучше и лучше, и, как правило, если вы используете Framework, такой как jQuery или Prototype, то вам, вероятно, будет проще, чем иметь дело с тяжелым уровнем абстракции, таким как GWT.

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

2 голосов
/ 06 января 2009

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

Одно преимущество, которое я особенно ценю, - это бесшовная сериализация и десериализация объектов. Мало того, что детали XML-RPC абстрагированы, но поскольку один и тот же код Java скомпилирован для байтового кода для сервера и javascript для браузера, вы можете кодировать почти так, как если бы сервер и клиент выполнялись в отдельных загрузчиках классов та же JVM. Например, вы можете создать Java-объект на сервере, отправить его в браузер в качестве возвращаемого значения из вызова службы RPC, и код браузера может затем использовать идентичный класс Java для управления только что возвращенным объектом. Аналогично, параметры для вызовов RPC могут быть сконструированы как объекты Java, при этом сервер получает идентичный объект Java на другом конце. Все это без разборчивости в деталях (де) сериализации.

2 голосов
/ 06 января 2009

С GWT вы фактически не пишете JavaScript; Весь смысл в том, что вы можете написать Java для компиляции в JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...