Использование шаблонов закрытия Google с jQuery - PullRequest
5 голосов
/ 29 июля 2011

Мы начинаем создавать приложение с использованием JavaScript и HTML5, которое будет использовать API отдыха для доступа к ресурсам сервера, используя преимущества jQuery и простоту, с которыми наша команда разработчиков уже знакома.Это приложение будет многоязычным.Позже мы решили, что напишем нашу DOM с использованием JavaScript, что позволит нам гибко использовать биты пользовательского интерфейса для интеграции с другими нашими приложениями и создадим наши собственные виджеты, используя виджеты jQuery UI.Затем, просто добавив тег сценария со ссылкой на файл JavaScript на соответствующей странице нашего другого приложения, мы получим большую часть нашей интеграции для этой конкретной функции.

Поскольку для создания DOM с использованием DOM требуется много кодаJavaScript, мы начали искать инструменты, которые помогут нам легко конвертировать HTML в JavaScript для создания пользовательского интерфейса, и, следовательно, пришли шаблоны Google Closure.

В то время я думал об использовании Google Closure для написаниябит пользовательского интерфейса DOM, поскольку он может быстро дать мне JavaScript для моего DOM, а затем для другого JavaScript (т.е. для связи на стороне сервера и для другой логики пользовательского интерфейса, например, изменение пользовательского интерфейса после получения ответа от сервера, и x должен измениться на y при нажатии zнекоторые вещи), которые должны быть написаны от руки, я должен использовать jQuery, который легко написать.

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

  1. Если я пойду на то, о чем думал, то смогу ли я вызывать функции, сгенерированные Google Closure, в моих виджетах jQuery для визуализации пользовательского интерфейса?

  2. Если я уйду из jQuery и просто воспользуюсь Google Closure, будет ли этого достаточно для моих требований?

  3. Когда я начал читать документацию по Google Closure, я обнаружил, что у него совершенно новый мир, иКривая обучения участвует.Сколько это?Если это не так много, то наша команда из 5 разработчиков будет готова выучить это.

На 2 и 3 было бы здорово, если кто-то, кто уже использовал его, может предоставить некоторыев поле зрения.

Примечание: - На всякий случай, если это имеет какое-либо значение, мы работаем над стеком Microsoft .NET для серверной части.

1 Ответ

8 голосов
/ 02 августа 2011

Библиотека закрытия и шаблоны закрытия не зависят друг от друга, поэтому вы, безусловно, можете использовать шаблоны закрытия с jQuery без использования библиотеки закрытия или компилятора закрытия. Чтобы использовать шаблоны с jQuery, вы переводите файлы шаблонов закрытия (также называемые «соевые» файлы), используя SoyToJsSrcCompiler.jar , как описано в документации . Тогда у вас будет один файл JavaScript для каждого файла сои, где каждый файл JavaScript содержит одну функцию на шаблон, определенный в соответствующем файле сои.

Чтобы использовать сгенерированные функции JavaScript, вы также должны включить soyutils.js , который представляет собой набор утилит, необходимых для сгенерированных функций. Следовательно, ваша производственная система должна включать следующие файлы JavaScript, объединенные / уменьшенные в следующем порядке:

  • soyutils.js
  • JavaScript, созданный из сои
  • Библиотека jQuery
  • Код вашего приложения, который предположительно зависит как от jQuery, так и от функций вашего шаблона.

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

Обратите внимание, что если в какой-то момент вы решите использовать библиотеку Closure вместо jQuery, вам следует включить soyutils_usegoog.js вместо soyutils.js . Хотя, если вы решите переписать логику своего приложения, чтобы она зависела от Closure Library вместо jQuery, после того, как у вас будет значительный объем кода, это небольшое изменение, вероятно, будет меньше всего вас беспокоить! То есть я уверен, что в конечном итоге вы могли бы написать все свое приложение, используя Google Closure, но при переходе с одной библиотеки JavaScript на другую для большого приложения, вероятно, потребуется так много изменений кода, что вы будете слишком напуганы, чтобы приступить к миграции.

...