Вот те груда мыслей из моего проекта. Что полезно, выбери ))
1) (насчёт отладки) Помоему к тебе разработка методом тестирования так и проситься.
К каждому модулю по тесту, тогда тебе пофиг будет Jquery там или нет.
Тест проходи значит можно двигаться дальше. Вопрос установки скрипта это уже другая песня. Тем более если ты один скриптер то ты сам и управляешь всеми конфликтами.
2) (организация) неймспейсы не быдлокод ! вообще есть два способа управления модулями. Централизованная загрузка и децентрализованная. При централизованной ты грузишь всё и инициализируешь в нужном тебе порядке. При децентрализованной каждый модуль проверяет доступность нужных ему компонентов. Лично Я, для ядра применяю централизованную загрузку, а для плагинов децентрализованную. Для децентрализованной загрузке я написал обёртку над jquery getScript. которая проверяет наличие нужных скриптов,css и шаблонов, подгружает недостающие и только затем передаёт callback на инициализацию плагина. Работает на ура. Оправдано тем что ядро небольшое- его проще компилировать и грузить централизованно большими кусками. Плагины могут разработаны кем угодно, так что централизованно не уследишь, здесь спасают события. Что именно тебе надо, уж решая сам по обстоятельствам.
3) нативный javaScript есть мазохизм приналичии jquery UI, javaScriptMvc, blackBone. - помоему ты сильно пытаешся усложнить свою жизнь, и увеличиваешь время разработки проекта. Короче я сильно против нативного js.
4) (ещё не много об организации) У меня редактор сайтов, причём на html5. Куча всяких наворотов типо вращения картинки,undo redo, свободная или стандартная для html, вёрстка, вложенные друг в друга виджеты (типо слайдер вложенный в TAB) и тд.
как решаю задачу.
Рублю прект на четыре части. 1) model(данные и оперирование данными модели), 2) bisness(логика приложения) 3) present (интерфейс отслеживание событий и тд), 4) template - шаблоны (шаблонизатор ejs).
плагин это маленькое приложение так же порубленное на четыре логические части.
Ядро с плагинами взаимодействует посредством системы сообщений. ибо ядро не знает о том какие плагины установлены на страницы. Оно просто генерирует событие, а кто уж подписан тот и обработает. Плагины просто обращаются к методам ядра, так как ядро относительно стабильно. В крайнем случае, я прикручу фасад к функциям ядра, но пока не вижу смысла.
Все плагины наследуют код от обьекта Widget, который содержит общий для всех виджетов функционал, а также стандартные обработчики событий, которые плагин естественно может переопределить. Наследование реализовано методом class фреймворка javascriptMvc.
О разделении проекта на части на нативном js даже думать страшно. Не думаю что я бы справился на голом javaScript,ибо и без того работы очень много. Однако мне чуть проще тем что я заказчик, архитектор, php и js программист в одном лице. И мои возможности нечем не ограничены, кроме времени. В октябре надо-бы альфу выпустить уже.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 17.09.2011 в 21:18.
|