Я некоторое время был пользователем jQuery (и некоторых его небольших плагинов). Код Javascript, который я разработал на протяжении многих лет, можно описать как... беспорядочный. Он использовал тонну глобальных переменных и функций здесь и там, не использовал стандартные способы организации кода и любые шаблоны проектирования.
В настоящее время я создаю новую версию веб-сайта, и я завершил создание бэкэнд с PEAR:: MDB2 и Smarty. Остальное - просто доморощенный PHP с некоторыми классами.
Теперь я нахожусь в точке, где я добавлю слой Javascript поверх веб-сайта, чтобы улучшить удобство использования некоторых функций. (при том, что все грамотно ухудшается). Я хочу писать лучше, более чистый, более организованный Javascript, чем раньше, поэтому я сделал небольшое исследование. Я прочитал Stefanov Объектно-ориентированный Javascript, чтобы лучше понять некоторые понятия, которые я знал только относительно (прототипы, конструкторы и т.д.). Теперь я застрял в точке, где мне интересно, какие рамки Javascript я должен использовать, и как организовать все это.
После проведения моего исследования я понял Cappuccino и Objective-J, а Sproutcore не был что я искал. Чтобы процитировать Cappucino о странице:
Cappuccino не предназначен для создания веб-сайтов или делает существующие сайты более "динамичными". Мы считаем, что эти цели слишком далеки от тех, которые разрабатываются при разработке приложений, чтобы они были удовлетворены единой структурой. Такие проекты, как Prototype и jQuery, отлично подходят для этих задач.
Так вот что. Затем я узнал о Coffee Script, который больше похож на один "компилятор" и не поможет мне с фактической организацией моего кода,
Я также наткнулся на некоторые статьи, которые дают рекомендации:
- Использование шаблонов наследования для организации больших приложений jQuery
- Шаблон модуля JavaScript
Я также узнал о Backbone.js, Shoestring, JavaScriptMVC, Google Loader, jQuery Tools, jQuery UI. Я не знаю, что делать со всем этим... То, что я знаю:
- Я не хочу вкладывать слишком много времени в изучение чего-то слишком сложного, я хочу как можно больше держать вещи простыми и гибкими (поэтому я не использую Symfony на бэкэнд, например), но чистые и организованные.
- Я хочу использовать jQuery, вопрос в том, что я должен использовать с ним? (это тоже совместимо)
В настоящее время я использую jQuery и jQuery Tools и "организую" все это в простом литерале пространства/объекта с простыми свойствами и методами, а также, поскольку сайт локализован, я просто планирую использовать простой vsprintf (как это делается на бэкэнд) с парами ключ: значение, загружаемыми из литерала объекта, предоставленного бэкэнд. JavaScriptMVC кажется интересным, но я боюсь, что это принесет слишком много сложности для проекта, который довольно мал. Вот где мне нужен ваш совет! Большое вам спасибо заранее.