GWT: возможно ли запустить проект с использованием GWT, а затем перейти в конечном итоге на полный JavaScript? - PullRequest
1 голос
/ 21 сентября 2011

Я думаю о запуске веб-приложения с использованием GWT, потому что мне удобнее пользоваться Java, чем Javascript.Также я хочу ознакомиться с лучшими практиками веб-разработки и узнать, как GWT оптимизирует Javascript.Я хочу проанализировать вывод JavaScript, созданный GWT, чтобы я мог научиться писать хороший Javascript.Возможно ли это или же JavaScript, созданный GWT, неразборчив, понятен только браузеру?

РЕДАКТИРОВАТЬ: Да, я посмотрел * .nocache.js, и он не читается.Хотя сейчас я бы продолжил работу с GWT, я хотел бы знать, существует ли какая-либо инфраструктура веб-разработки, которая поможет мне быстро настроить веб-приложение, но как вы поведете меня к лучшим практикам в Javascript?Я предпочитаю, чтобы мое веб-приложение не было слишком тесно связано с этим фреймворком, и я могу программировать на javascript (+ jquery), если захочу.

Ответы [ 7 ]

2 голосов
/ 22 сентября 2011

Конечно, вы всегда можете создать крошечный «учебный пример» проекта в GWT и позволить ему скомпилировать с -style PRETTY или DETAILED, а затем проанализировать

  • , что GWT делает для оптимизации и
  • какие различия GWT создает для разных браузеров,

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

Тем не менее, вы можете узнать несколько хороших концепций из GWT (на самом деле больше из чтения документации GWT, чем из анализа сгенерированного кода) и попытаться повторно реализовать их для проекта на чистом JavaScript:

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

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

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

1 голос
/ 01 мая 2012

Вы можете экспортировать javascript api из вашего gwt, чтобы вы могли взаимодействовать с вашим кодом gwt из raw js или jquery.

http://code.google.com/p/gwt-exporter/

Это позволит вам создать кросс-платформенную библиотеку gwt, которая представит ваш скомпилированный api в raw javascript. Очень полезно для экспорта вашей работы в gwt в raw js проекты.

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

1 голос
/ 21 сентября 2011

Может показаться, что это так же сложно, как попытаться выучить ассемблер из результатов скомпилированной программы на Си. Вы, дети, помните C? Ассемблер? В любом случае, я бы предложил вам создать простую программу GWT, эквивалентную «Hello world», и использовать приведенный здесь совет, чтобы получить довольно беспристрастный результат. Если вы можете понять Javascript, который вы видите, и он имеет некоторое сходство с тем, что человек мог написать, используя Javascript напрямую для выполнения той же задачи, то, возможно, это сработает. Если, с другой стороны, получается огромное количество непонятной инициализации и настройки и сильная зависимость от внешних функций Javascript для выполнения даже самых простых действий, то, возможно, лучше изучить старомодный Javascript. .

1 голос
/ 21 сентября 2011

Хотя GWT может генерировать «читаемый» javascript с помощью параметра -PRETTY, он не будет действительно читаемым.Код будет трудно понять, и он будет структурирован совершенно по-другому, по сравнению с тем, как вы это делаете с jQuery или любой другой библиотекой javascript.Тестирование и отладка будут практически невозможны за пределами мира Java.

С другой стороны, вы можете получить доступ к простому Javascript из GWT, используя JSNI, и наоборот, используя gwt-exporter .

1 голос
/ 21 сентября 2011

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

Но использование GWT, на мой взгляд, хороший способ заглянуть в мир "web 2.0"

1 голос
/ 21 сентября 2011

Взгляните на страницу Google Отладка и Компиляция . Вы можете использовать аргумент -style PRETTY для компилятора для создания читабельного JavaScript.

Обновление:

GWT Compiler делает много вещей при компиляции вашего кода из Java в Javascript. Рэй Кромвель говорит об этом в Google I / O 2010 в своей Оптимизации приложений с помощью GWT Compiler . Это очень удобно, если вы заинтересованы в том, что делает GWT Compiler для оптимизации JavaScript.

1 голос
/ 21 сентября 2011

Я вижу его сжатым по умолчанию, почти невозможно прочитать. Может быть, у вас есть варианты, чтобы прояснить это.

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

Если вы хотите что-то написать в js, используйте jquery.

...