Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Серверные службы Linux

GWT: Новый способ Вэб-разработки

Оригинал: GWT: A new way of doing Web development
Автор: Federico Kereki
Дата: 15 января 2008
Свободный перевод: Алексей Дмитриев
Дата перевода: 5 марта 2008

Вам не приходилось удивляться, как удается перетаскивать мышью карту мира на сайте Google Maps или перемещаться с места на место без перезагрузки картинки на экране? А может быть вам нравится поведение и внешний вид почтового сервиса Gmail? Может быть, вы тоже хотите разрабатывать Вэб-сайты с использованием Google'овских фирменных дружественных пользователю свойств, но боитесь большого объема связанной с этим работы? Тогда обратите внимание на Google Web Toolkit (GWT) (Гугловский Вэб-Инструментарий).

GWT, инструмент для Вэб-программиста, впервые появился на публике в мае 2006 года на конференции JavaOne. Он находится в состоянии бурного развития, его текущая версия 1.4.61, а версия 1.5 обещана в 1 квартале 2008 года. Он лицензирован под Apache License 2.0, хотя некоторые компоненты лицензированы иначе.

Нужен ли вам GWT?

Разработка современного, динамичного Вэб-приложения может быть весьма разочаровывающим занятием. Во-первых, вы должны написать специфический код, который должен одинаково воспроизводиться множеством несовместимых друг с другом браузеров. Иначе ваш сайт может выглядеть прекрасно, скажем, в Mozilla Firefox, но совсем не работать в Internet Explorer и Safari. Разработчики Вэб обычно тратят больше времени на кросс-тестирование, чем на разработку сайта как такового. Кроме того, для разработки интерактивных сайтов вам необходимо использовать JavaScript, язык довольно мощный, но которому недостает модульности и возможности тестирования, что создает проблемы при создании больших систем. Разумеется, вы должны знать HTML и Cascading Style Sheets (CSS) для собственно Вэб-дизайна, и такие языки, как PHP и Java, для написания Вэб-сервисов. Многие сайты требуют Dynamic HTML (DHTML), так что вам придется менять работающий исходный код просматриваемой страницы "на лету", а там тоже есть проблемы с совместимостью. И, наконец, вам, возможно, предстоит заниматься интернационализацией для многоязычных сайтов - вот еще дополнительные сложности.

GWT позволяет вам обойтись без вышеперечисленных проблем, позволяя работать на Java, используя такие инструменты как: Eclipse или NetBeans для написания кода, Unified Modeling Language (UML) для дизайна классов, JProfiler для оптимизации функционирования, JUnit для автоматизированного тестирования, и Javadoc для документации. С этими инструментами вы сможете избежать обычных ошибок типа опечаток или ошибок при наборе текста, а также сможете использовать refactoring для оптимизации кода. Вы сможете запускать и отлаживать вашу программу в "домашнем" режиме, что подразумевает прогон программы как Java код внутри Виртуальной Ява Машины (Java Virtual Machine - JVM), имея доступ к инструментам отладки. Затем можно конвертировать программу в JavaScript и HTML и прогнать в Вэб-режиме, то есть так, как ее увидит конечный пользователь.

Имейте в виду, что вам никогда не придется беспокоиться о HTML или JavaScript. Когда GWT компилирует с Java на JavaScript, она следит за вопросами совместимости, так что ваш сайт будет выглядеть одинаково в любом браузере. GWT также сильно упрощает использование AJAX, позволяя легко контактировать в Вэб-сервисами, которые также могут быть написаны на Java (но это не обязательно).

Что включает в себя GWT?

GWT включает четыре компонента:

  • "Домашний" Вэб-браузер: Позволяет проверять ваши Java программы в том самом виде, в котором их увидит пользователь.
  • Библиотека Вэб-интерфейса: Позволяет создавать и использовать интерфейсные элементы окна браузера, такие как ярлыки, текстовые поля, радио кнопки. Вы вставляете эти элементы в вашу программу, а компилятор трансформирует их в HTML эквиваленты.
  • Библиотека Java эмуляции: Предоставляет JavaScript-эквивалентные реализации наиболее обычным стандартным Java-классам. (Заметьте, что не вся Java доступна, существуют ограничения для классов, разрешенных к использованию. Вполне возможно, вам придется писать свой собственный код для использования недоступных классов.)
  • Java--JavaScript компилятор (переводчик): Продуцирует окончательный Вэб-код.

Как и большинство программистов, вы, несомненно, озабочены производительностью конвертированного кода. GWT генерирует сверхкомпактный код, который впоследствии можно сжать и кэшировать, так что конечный потребитель загрузит несколько десятков килобайт конечного кода только один раз. Качество генерированного кода приближается к качеству JavaScript, написанного человеком (или даже превосходит его), особенно в случае больших проектов. Если верить разработчикам GWT, версия 1.5 обещает быть еще лучше. В конечном итоге, время, сэкономленное на отладку кода для различных браузеров, лучше потратить на разработку самой программы, что позволит создать новые свойства и лучшие приложения.

Инсталляция и использование GWT

До начала инсталляции GWT у вас должен быть установлен Java Development Kit (JDK). В настоящее время GWT ориентирован на работу с Eclipse, которым пользуются сами разработчики Google, так что, может быть, вам стоит установить и его. (Можно также заставить GWT работать с NetBeans или иной обычной средой разработки). Затем идите на сайт загрузки, скачивайте новейший пакет -- он "весит" около 25MB -- и распаковывайте его при помощи команды: tar jxf ../gwt-linux-1.4.61.tar.bz2. Никакой дальнейшей инсталляции не требуется - GWT будет работать из любой директории.

Ресурсы по GWT

Вот несколько книг, которые позволят вам углубиться в изучение GWT:
Google Web Toolkit for Ajax,
Google Web Toolkit: Taking the Pain out of Ajax,
GWT in Action: Easy Ajax with the Google Web Toolkit, и
Google Web Toolkit: GWT Java Ajax Programming.

Google Web Toolkit Discussion Group весьма активный форум, насчитывающий более 11 000 членов, где можно получить ответы на специальные вопросы. Зайдите на Google Web Toolkit Blog чтобы быть в курсе развития самого GWT, хотя он не очень часто обновляется. The Unofficial Google Wiki предоставляет много ресурсов по GWT, включая интерфейсные элементы окна (виджеты). И, наконец, если хотите примеров GWT в действии, просмотрите Google's own example projects, другие примеры в Unofficial Google Wiki или специальные коды на сайте the Roughian.com.

Чтобы создать новый проект, следуйте инструкциям GWT. А если работаете с Eclipse, следуйте следующим шагам:

  • Создайте директорию для своего проекта.
  • Создайте проект в этой директории при помощи команды: ./pathToGWT/projectCreator -eclipse MyOwnProject.
  • Создайте пустой шаблон приложения при помощи: ./pathToGWT/applicationCreator -eclipse MyOwnProject com.yourCompanyName.client.YourApplicationName.
  • Откройте Eclipse, выберите File -> Import, нажмите Existing Projects Into Workspace, и выберите директорию, в которой вы создали свой проект.

Теперь вы можете редактировать как HTML, так и Java коды, добавлять новые классы, тестировать вашу программу в "домашнем" режиме. Когда вы будете удовлетворены результатами, скомпилируйте программу (соответствующий скрипт генерируется, когда вы создаете оригинальный проект), и размещайте ее на вашем Вэб-сервере.

Заключение

GWT - это инновационный метод Вэб-разработки. Он позволяет Java программистам создавать Вэб-приложения, используя привычные для них инструменты, и работать на более высоком уровне, создавая современные, высоко интерактивные Вэб-сайты.