Компания "Альфа" всегда открыта для новых сложных задач и интересных проектов. Мы также не обходим стороной быстроразвивающуюся технологию GWT. Опыт нашей команды Java-разработчиков насчитывает несколько крупных проектов разработки интерфейса для корпоративных систем. Так, например, мы разработали интерфейс системы документооборота – суть проекта заключается в кастомизации стандартных компонентов и применении профессиональных дизайнерских стилей, при этом мы не упускаем из вида необходимость обеспечения быстродействия системы.
Когда задача состоит в создании и поддержании хорошо отлаженного и высоко производительного клиент-серверного Web 2.0 приложения, решения могут быть различными: можно пойти сложным путем – написать клиентскую часть силами разработчиков, владеющих HTML, CSS, JavaScript, а к написанию серверной части привлечь PHP, Perl, JSP/Java Servlets, или ASP специалистов.
Однако, есть более изящное решение – писать обе части приложения на Java и использовать удобный фрэймворк – Google Web Toolkit. Так, многие сервисы Google написаны именно на Java.
Принцип работы GWT прост: клиентский код пишется на Java, а затем инструментарий кросс-компилирует его в JavaScript. GWT избавляет от весьма трудозатратного и не совсем надежного использования больших баз кода JavaScript и компонентов AJAX. С тех пор, как инструментарий попал в руки разработчиков (официально мировому сообществу GWT был представлен в мае 2006), он быстро набрал позиции в рейтингах фрэймфорков для создания легких, быстродействующих Web 2.0 приложений с богатым пользовательским интерфейсом. Масштабы использования давно вышли за пределы Google, и продолжают набирать обороты.
Итак, почему же GWT так стремительно стал популярен среди Java разработчиков, и настолько симпатичен заказчикам коммерческих приложений? Давайте взглянем на преимущества и недостатки GWT:
В GWT есть встроенный механизм, позволяющий разработчику делить приложение на части (‘code splitting’). Это, в свою очередь, приводит к тому, что размер первоначально загружаемых на клиент данных значительно уменьшается, а результатом является высокая скорость запуска приложения.
GWT приложение позволяет передавать между клиентом и сервером исключительно необходимые данные, а также загружать данные только по мере их необходимости с помощью расширения RPC технологии в виде RequestFactory (доступно начиная с версии GWT 2.1). Это, несомненно, разгружает приложение и позволяет достичь его максимального быстродействия.
Более того, чтобы уменьшить нагрузку HTTP запросов со стороны клиента, в GWT есть механизм, позволяющий, помимо обычного браузерного кэширования, кэшировать ресурсы таким образом, что необходимый ресурс загружаются единожды, вместо того, чтобы загружаться по отдельности каждый раз по мере его использования. Вдобавок, уменьшается избыточное хранение однотипных данных.
GWT приложения отличаются высоким уровнем стабильности и защищенности от сбоев и хакерских атак: генерируемый JavaScript-код становится нечитаемым, что очень удобно в тех случаях, когда необходимо содержать в сохранности какую-нибудь сверхважную информацию.
С помощью GWT можно создавать кроссбраузерные приложения, что позволяет разработчикам сократить время на отладку внешнего вида приложения в различных браузерах Internet и больше сфокусироваться на бизнес-логике. Здесь, правда, есть и свой недостаток: часть инструментов GWT ограничена встроенными компонентами, поэтому для кастомных компонентов кроссбраузерность необходимо реализовывать вручную. Однако, всему есть логичное объяснение – ограниченный набор стандартных компонентов предусмотрен для быстродействия приложения.
Интеграция GWT с JUnit дает отличную возможность поддержать высокое качество приложения: клиентский код можно проверять unit-тестами, и как результат писать отлично спроектированные системы и более аккуратный код. Опытные разработчики отмечают в этом большой плюс GWT.
Разработчики отмечают, что среди недостатков GWT можно отметить асинхронную природу скомпилированного JavaScript кода – непредсказуемость момента времени, в которое выполнится JavaScript, создает определенную сложность для работы с ним вручную. Это, впрочем, не имеет никакого влияния на отлаженную работу веб-приложения – разработчик вносит изменения в Java код, который затем просто снова надо скомпилировать.
Если у вас есть идея разработки веб-приложения на GWT - мы с радостью возьмемся! Вы сможете стать свидетелем энтузиазма, с которым наши специалисты берутся за выполнение сложных задач, а также того, с каким блеском они найдут наиболее оптимальное решение для реализации Вашей идеи.
Ссылки:
«Google Web Toolkit. Обзор продукта» http://code.google.com/intl/ru/webtoolkit/overview.html