Использование шаблонов закрытия Google с jQuery

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

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

В настоящее время я подумал о том, чтобы использовать закрытие Google для написания бита UI 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 ответ

Решение

Библиотека закрытия и шаблоны закрытия не зависят друг от друга, поэтому вы, безусловно, можете использовать шаблоны закрытия с jQuery без использования библиотеки закрытия или компилятора закрытия. Чтобы использовать шаблоны с jQuery, вы переводите файлы шаблонов Closure (также называемые "соевые" файлы), используя 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 в другую для большого приложения, вероятно, потребуется так много изменений кода, что вы будете слишком напуганы, чтобы приступить к миграции.

Другие вопросы по тегам