Выбор платформы JS (переключиться с Mootools на Closure или Dojo) - PullRequest
2 голосов
/ 19 января 2012

Проект, над которым я работаю, является «фреймворком» для очень специфического типа веб-сайтов b2b.В настоящее время у меня все работает на iOS и ПК практически с любым браузером.Он поставляет разные макеты и код для разных платформ, и все работает отлично, но я застрял в проблеме обслуживания: у меня есть JS-модули для объектов пользовательского интерфейса, макетов (поэтому нет проблем с запуском как на iPhone, так и на ПК сразрешение FullHD), данные ajax и так далее.Некоторые модули универсальны, некоторые зависят от платформы, и я хотел бы «скомпилировать» их в несколько пакетов, например:

  • iOS,
  • любой браузер с Flash 10 (дажеIE6)
  • IE9-Opera12-FF5-Safari на ПК / Mac (к моему удивлению, в Chrome отсутствуют некоторые функции)
  • отказоустойчивая конфигурация (без Flash или JS)
  • Android /WP7 / Bada (пока нет, но будет готов через два месяца)

Все написано с использованием Mootools.90% кода является уникальным, потому что почти любая библиотека, которую я хотел бы использовать, не работала на iOS или IE 6-8.

Проблема в том, что Mootools не работает нормально с Closue Compiler.Я сейчас использую gnu-make + google-closure-compiler + doxygen, затем он получил rpm'd и был развернут на сервере.Это работает, но я все еще не могу заставить компилятор закрытия работать на продвинутом уровне (из-за модуля Class mootools, который мне определенно нужен).Другая проблема заключается в том, что мне приходится объединять файлы js и css самостоятельно (порядок жестко задан в make-файле).

Вопрос в том, что мне выбрать:

  • Стоит ли пытаться переписать весь код для Closure Library, чтобы заставить Closure Compiler работать нормально (так что у меня будет минимизация, какая-то запутанность и, наконец, мои скрипты будут объединены в один)
  • продолжайте использовать Mootoolsи попробуйте использовать require.js + Rhino при компиляции, например, ACE (Cloud9) Editor, например,
  • выберите Dojo, но я ничего не знаю об этом, относительно условной компиляции, минимизации и запутывания
  • другой набор инструментов, который вы знаете о

Последнее, что я хотел бы упомянуть, это то, что я хотел бы получить вместе с собой абсолютную модель данных, что-то вроде пакета данных в ExtJs.Но мне нужно только «M» из «MVC», ничего более.

Я доволен своим бэкэндом, и любая поддержка на стороне сервера для меня не является преимуществом.

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

1 Ответ

4 голосов
/ 19 января 2012

Еще один вариант: вы можете использовать Closure без расширенного режима, и все же получить много пользы. Это то, что Dojo делает OOTB. Получение Closure Работа в расширенном режиме - сложное дело с любой библиотекой, а также с вашим собственным кодом. У Dojo есть набор инструментов, который позаботится о минимизации / обфускации / конкатенации / и т.д. - Я не знаю, как этот набор инструментов сравнивается с mootools, но я думаю, что можно оптимизировать код и в Mootools, даже если для этого нужно написать скрипт или использовать другие инструменты. Смена инструментария просто для того, чтобы это произошло, не имеет смысла. Возможно, вам придется переписать много кода. Изменение / использование наборов инструментов, поскольку вам нужны новые функциональные возможности, - это отдельная история, хотя вы должны иметь возможность комбинировать наборы инструментов. Многие инструментарии, в том числе Dojo, имеют абстракции MVC - возможно, и mootools.

...