Вопрос по jquery-ui, jquery, google-closure, gwt, javascript – Jquery против Google Closure и GWT Плюсы и минусы для разработки крупных веб-приложений

14

Я собираюсь приступить к разработке большого веб-приложения, которое содержит мультимедиа (видео, аудио и изображения) и большую базу пользователей.

Трафик на сайте также может быть очень высоким.

Так что здесь я немного запутался, должен ли я использовать jquery / jquery ui, Google Closure или GWT.

я знаком с jquery и много работал над этим, но для GWT и Google Closure это мой первый раз.

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

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

-Заранее спасибо

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

Ваш Ответ

3   ответа
24

что это действительно зависит от того, какой веб-сайт вы хотите создать.
GWT, вероятно, лучше всего подходит для так называемыхSOUI (Сервис-ориентированный интерфейс) иSOFEA Сервисно-ориентированная архитектура переднего плана.
В веб-приложениях GWT у вас есть одна HTML-страница хоста, которая обслуживается вашим бэкэндом и всем рабочим процессом пользовательского интерфейса исинхронизация потока делается на стороне клиента GWT. Поэтому, если вы хотите создать приложение, похожее на десктоп, GWT, вероятно, является вашим лучшим выбором, потому что это отличный инструментарий, который позволяет разрабатывать сложные приложения, подобные десктопу, и предоставляет все преимущества разработки JAVA (тестирование, рефакторинг и т. Д.).

Для «традиционных» веб-сайтов Web 2.0 2.0 GWT может быть не лучшим выбором, потому что у него есть несколько большая кривая обучения, чем у JS-фреймворков (jQuery, dojo и т. Д.).
Кроме того, эти веб-сайты имеют несколько страниц, и Javascript используется для улучшения пользовательского интерфейса, и не для того, чтобы полностью взять на себя синхронизацию потоков, а просто для того, чтобы сделать страницу более интерактивной. Для этих веб-сайтов у вас обычно есть хороший бэкэнд (Grails, Spring MVC), который заботится о синхронизации потоков, а инфраструктура JS просто отвечает за то, чтобы сделать пользовательский интерфейс более интерактивным и за некоторые изменения пользовательского интерфейса.

Примером такого рода веб-сайтов является stackoverflow. Если вы нажмете на ссылку, она загрузит новую страницу HTML. Если вы нажмете на ссылку «Входящие», она будет использовать jQuery, чтобы открыть всплывающее окно, получить ваши уведомления и отобразить их.

Google Closure, вероятно, ближе к JQuery, чем к GWT. , что самая большая точка продажи Google Closure - это HTML-шаблоны на стороне клиента и на стороне сервера. У меня нет большого опыта работы с Google Closure, но он активно используется Google для своих веб-приложений.

Поскольку я работал в основном с GWT, вот список преимуществ и недостатков, которые я могу придумать в отношении GWT:

преимущества:

Надежный инструментарийИнструменты разработки (тестирование, рефакторинг, затмение, live-отладка)Кросс-браузерная совместимость из коробки (с некоторыми оговорками)Наличие сторонних библиотек (DTO-сериализация, MVP-фреймворки и т. Д.)Только используемый код загружается на клиент (с помощью JS-фреймворков вы загружаете весь фреймворк, даже если вы используете только одну конкретную функцию)GWT-RPC и RequestFactory для связи с бэкэндом JAVA (не нужно сериализовать или десериализовать себя).

Недостатки:

Большая кривая обученияМожет не подходить для небольших улучшений пользовательского интерфейсаКомпиляция может занять некоторое время, если база кода велика и должны поддерживаться разные браузеры и языки.Сгенерированный Javascript может стать большим в сложных приложениях (решение: разделение кода)

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

Подводя итог: если вы хотите разработать интерактивное веб-приложение для настольного компьютера, я думаю, что GWT, вероятно, ваш лучший выбор.
Однако, если вы хотите разработать более традиционный веб-сайт "Web 2.0ish", лучше использовать jQuery / Google Closure.

Ну, GWT 2.5 RC1 вышел. Кажется, это самый большой релиз, который у нас был до сих пор. Сессия с Google IO:pgt.de/2012/07/11/... Papick G. Taboada
отлично .. очень хорошо объяснил. спасибо Peeyush
«с помощью JS-фреймворков вы загружаете весь фреймворк ...» Примечание: это не относится к Closure. Он «компилирует» Javascript, чтобы запутать его, сжать и включить только то, что вы используете. Rob N
+1 за ссылку на GWT 2.5 info. :) Justin
3

что он разработан с использованием компилятора Closure (в расширенном режиме). Вы получаете быстрый цикл редактирования / отладки исходного javascript и библиотеку кода достаточного размера, и вашему клиенту остается только ждать кода, который вы фактически используете (при условии, что вы его скомпилировали).

Для GWT стоит воспользоваться «режимом разработки», чтобы избежать компиляции.

Компилятор замыкания вошел в GWT 2.5 и может быть протестирован с действием RC1. Papick G. Taboada
6

что по сути является разработкой JavaScript. Как и JQuery, GWT «нормализует» браузеры для вас, поэтому вам обычно не нужно проверять пользовательский агент или что-то еще. Преимущество Java IDE - это действительно надежная поддержка рефакторинга для изменения имен, упаковки, сигнатур методов и других вещей. ЕГО БЫЛО 2 ГОДА ПОСЛЕ ТОГО, КАК Я СДЕЛАЛ GWT, но я думаю, что его недостатком, особенно в крупных проектах, является этап компиляции. Это не быстро, особенно когда вы отпускаете его для компиляции всей Java для каждого из браузеров. Если я правильно помню, и если он все еще делает это сегодня, он создает действительно большой файл JavaScript для каждого из IE, FireFox, Chrome, Opera и Safari. Это требует времени, мой друг. Там также есть фреймворк для модульного тестирования, который интересен, хотя и медленнее, чем его чистый Java-аналог.

Преимущество GWT: надежная поддержка инструментов через экосистему Java IDE. Ответственность GWT: время компиляции

Я не так много знаю о JQuery, кроме того, что он, похоже, взломал cookie-файл совместимости браузера, позволяя вам, честному разработчику, сконцентрироваться на своем приложении. Что я знаю о JQuery, так это то, что у него, кажется, есть разум разработчиков. Мне, не являющемуся экспертом по JavaScript, удалось интегрировать JQuery в мое веб-приложение на Java и добавить «подключаемый модуль» для предварительного просмотра изображений под названием imgPreview (http://james.padolsey.com/javascript/new-jquery-plugin-imgpreview/). предоставление всплывающих превью изображений моему мягкому пользовательскому интерфейсу на основе таблиц примерно через 30 минут после обеда. Браузеры тоже выросли за последние 2 года, так что теперь вы можете динамически отлаживать свой JavaScript в режиме реального времени в консоли (Chrome это подходит, но в FireFox и Safari он практически не отличается), а также настраивать стили и делать все виды прямых манипуляций с DOM.

Преимущество JQuery: исправьте JavaScript без какой-либо интерпретации и заботы разработчиков. Ответственность за JQuery: сложно реорганизовать JavaScript на уровне, близком к уровню Java-приложения.

Мои 2 цента стоят.

Знаете, я не знаю, как приседать с Google Closure. Может быть, это изменит правила игры, склоняющие ваше предпочтение к цепочке инструментов Google? Bob Kuhar
спасибо Бобу за такое хорошее объяснение Peeyush
Нет проблем, я проголосовал и за другого парня. Bob Kuhar
Прошу прощения, но я не могу принять более одного ответа, в противном случае я также отмечу вас как правильный / принятый. Peeyush

Похожие вопросы