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