Должен ли я использовать Google Web Toolkit для моего нового веб-приложения? - PullRequest
16 голосов
/ 27 августа 2008

Я хотел бы создать интерактивное веб-приложение AJAX на основе базы данных, в котором есть настраиваемая система календарей (для определенных видов событий, редактирования). Для этого потребуется довольно много JavaScript и AJAX, и я подумал о Google Web Toolkit для интерфейса и Ruby on Rails для серверной части.

Является ли Google Web Toolkit надежным и хорошим? Какие скрытые риски могут возникнуть, если я выберу Google Web Toolkit? Можно ли легко объединить это с Ruby on Rails на стороне сервера? Или я должен попытаться напрямую использовать библиотеку JavaScript, такую ​​как jQuery?

У меня нет опыта в веб-разработке, кроме HTML, но я опытный программист (c ++, java, c #), и я хотел бы использовать только бесплатные инструменты для этого проекта.

Ответы [ 12 ]

12 голосов
/ 28 августа 2008

RoR - это одна из тех вещей, с которой GWT хорошо работает, если вы правильно используете REST. Он находится в книге «Приложения Google Web Toolkit», и вы можете увидеть демонстрацию из книги, используя эту идею здесь . Это не значит, что у вас не будет никаких проблем, но я думаю, что поддержка определенно там есть.

Есть замечательный проект для упрощения RoR / GWT, который вы можете найти здесь (лицензия MIT). У меня еще не было возможности опробовать его, но, похоже, в него вложено немало мыслей. Одна загвоздка в том, что, похоже, он еще не был полностью протестирован с 2.1 Rails, только 2.0, поэтому вы можете столкнуться с несколькими (возможно, незначительными и исправимыми) ошибками.

4 голосов
/ 17 сентября 2008

Если вы хотите интегрировать GWT с не-Java бэкэндами, такими как ROR, PHP и т. Д., Вы должны иметь в виду, что GWT 1.5 теперь поддерживает типы оверлея JavaScript. Эта функция позволяет писать классы, которые можно отображать поверх собственных объектов JavaScript, чтобы легко предоставлять методы доступа для свойств этих объектов и другие расширенные функции.

Смотрите эту ссылку для более подробной информации: Типы наложений JavaScript

Таким образом, вы можете вернуть закодированные в JSON данные из своего бэкэнда через вызовы AJAX, проанализировать их в объект JavaScript и затем получить доступ к данным через код GWT Java с помощью созданных вами оверлейных классов. Или когда вы визуализируете свою страницу, вы можете визуализировать статические данные конфигурации в виде объектов JavaScript и считывать их с помощью этого механизма, вместо того чтобы выполнять вызов AJAX для получения данных.

2 голосов
/ 12 сентября 2008

GWT очень высокого качества с отличным сообществом. Однако вам нужно знать CSS, если вы хотите изменить внешний вид (вы это сделаете) - CSS может сделать большую часть макета, как и обычный веб, если вы этого хотите. Библиотеки, такие как GWT-ext или ExtGWT, могут немного помочь, поскольку имеют потрясающий внешний вид «из коробки», но за определенную цену (дополнительный размер для вашего приложения).

2 голосов
/ 12 сентября 2008

Если вы знаете JAVA, и у вас есть где-то, где вы можете разместить его (например, контейнер для кота или стеклянной рыбы), я бы порекомендовал это гораздо больше, чем использование Ruby для внутреннего интерфейса. Основная причина в том, что тогда вы можете делиться всеми своими объектами и использовать встроенный механизм RPC. Я сделал это для довольно многих наших проектов, и это значительно экономит время, не говоря уже о том, что код менее подвержен ошибкам, потому что вы не конвертируете свои java-объекты во что-либо, а затем снова возвращаетесь.

Я связывал свой GWT с Rails прежде, используя функцию to_json в Rails и затем читая JSON в GWT. Все это поддерживается, но это гораздо более раздражает, чем просто выполнение серверной части в JAVA.

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

1 голос
/ 01 февраля 2010

В этом блоге содержатся материалы многих опытных пользователей GWT и есть несколько интересных тем для обсуждения. Лично у меня огромный опыт работы с различными фреймворками пользовательского интерфейса. Я добавлю свои два цента. Давайте рассмотрим фундаментальные преимущества и недостатки GWT

Фундаментальное преимущество

GWT переносит программирование веб-слоя на JAVA. Итак, очевидные преимущества Java начинают проявляться. Это обеспечит объектно-ориентированное программирование. Это также обеспечит отличную отладку и проверку времени компиляции. Поскольку он генерирует HTML и Javascript, он также может скрывать некоторые сложности в своем генераторе.

Фундаментальный недостаток

Недостаток начинается с того же утверждения. GWT переносит программирование веб-слоя на JAVA. Если вы знаете JAVA, возможно, вы никогда не будете искать альтернативный язык для написания своей бизнес-логики. Это самодостаточно и здорово. Но когда дело доходит до написания конфигураций для приложения JAVA. Мы используем файлы свойств, базу данных, XML и т. Д. Мы никогда не храним конфигурации в файле класса JAVA. Подумай, почему это так?

Это потому, что конфигурация представляет собой статические данные. Это часто требует иерархии. Это должно быть читаемым. Это никогда не требует компиляции. Не требует знания языка программирования JAVA. Короче говоря, это другая игра с мячом. Теперь вопрос в том, как это связано с нашей дискуссией?

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

Предыдущий абзац делает очень очень сильное утверждение. Это объяснит, почему веб-страницы на основе HTML и XML по-прежнему являются самыми популярными. XML лучше всего подходит для написания конфигураций. Фреймворк должен обеспечивать четкое отделение веб-страницы от бизнес-логики (цель фреймворка MVC). Таким образом, веб-дизайнер сможет применить свои навыки визуализации и мастерства для создания блестящих веб-страниц, просто настраивая XML и не беспокоясь о тонкостях языка программирования. Разработчики смогут использовать свои лучшие в бизнесе JAVA для написания бизнес-логики.

Наконец, давайте поговорим о последствиях в прямых терминах. GWT нарушает этот принцип, поэтому он обязательно потерпит неудачу. Стоимость разработки приложения GWT будет очень высокой, потому что для написания веб-страниц вам понадобятся многоопытные программисты. Требуемый внешний вид будет очень трудно достичь. Время изменения веб-страницы будет очень большим из-за ненужной компиляции. И, наконец, поскольку вы пишете веб-страницы в JAVA, очень легко испортить их с помощью бизнес-логики. Не зная, вы будете вводить сложности, которых следует избегать.

1 голос
/ 07 ноября 2008

Вы обязательно должны использовать GWT для нового проекта (его довольно легко использовать и в старом проекте).

По моему опыту, его очень быстро освоить и использовать. Скомпилированный код javascript намного лучше, чем все, что вы когда-либо могли написать от руки, и работает быстро.

Еще одним преимуществом является возможность отладки вашего кода (что, черт возьми, только с помощью javascript)

1 голос
/ 22 сентября 2008

GWT - замечательная структура с большим потенциалом. Имейте в виду, что это все еще довольно новый, хотя. Есть некоторые нерешенные ошибки, которые могут действительно раздражать вас, и для них обычно требуются безобразные обходные пути. Сообщество отличное, но вы, вероятно, рано или поздно столкнетесь с несколькими проблемами, на которые Google пока не может ответить.

Но эй, я говорю, дерзай. Потенциал для GWT огромен, и я уверен, что его будущее будет светлым.

1 голос
/ 18 сентября 2008

Я недавно писал о некоторых из недостатков GWT . Главными недостатками являются: длительный цикл развертывания изменений в некоторых частях приложения и довольно крутая кривая обучения. Как опытный Java-программист, второе должно быть меньше проблем, и если вы используете отдельный бэкэнд, первый также смягчается (поскольку полное повторное развертывание требуется, прежде всего, при изменении серверной части приложения).

1 голос
/ 27 августа 2008

Если вы знакомы с Java, но не с Javascript / CSS, то GWT станет спасателем (если, конечно, вы не захотите их изучать). У CSS так много маленьких неряшливых деталей. Нередко полдня тратят на исправление смещения в 2 пикселя, которое происходит только в IE6.

Я не уверен, насколько легко было бы использовать ROR для серверной части ... Это, я уверен, возможно, поскольку GJT-связь ajax - это просто сервлеты. Но они предоставляют некоторые действительно хорошие функции для передачи объектов Java туда и обратно, которые вы не сможете использовать, если ваш сервер также не использует Java.

1 голос
/ 27 августа 2008

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

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