Организация javascript кода

Доброго времен суток.

По специализации, я занимаюсь написанием серверной части сайтов (иногда приложений). Но попался проект, в котором я пишу и серверную и клиентскую часть (еще и верстку мучаю). Серверная часть организованна замечательно: полное MVC, толстые модели, несколько слоев абстракции и все покрыто тестами. А вот с клиентской частью у меня беда. С javascript я работал довольно мало и сейчас возникла проблема с организацией кода.

Почти все проекты, которые я до этого писал были с rest архитектурой и мне на сервере сильно париться не приходилось: отдал нужный объект в json-формате и доволен. А сейчас приходиться думать о представлениях. На данный момент все собирается на сервере и клиенту отдается готовый html и там скрыпты занимаются только визуальными эффектами, хотя попадаются и сложные участки.

Собственно сайт представляет из себя некий каталог. Каждый пользователь может просматривать и фильтровать список заявок, оставить отзыв к заявке. Так же у пользователей есть возможность создавать альбомы и загружать в них фотографии работ. Плюс система отзывов и сложная система распределения прав. Обилие всплывающих окон и т.п. В будущем планируется еще куча всего. Сайт частично работает на ajax (формы, загрузка фотографий), частично обычными запросами.

Пока не поздно хочу исправить архитектуру. Что бы потом не было мучительно больно. Ибо сейчас представления - это тихий ужас, а скрипты - лапша из вызовов и слушателей.

Думаю организовать это в виде одностраничного приложения на chaplinjs (люблю кофе). Подскажите, стоит ли заморачиваться с одностраничником для системы такого масштаба? Или есть другие варианты?

Собственно мне нужна модульность, AMD, клиентский шаблонизатор для представлений, IE8+, низкий порог вхождения, что бы можно было перевести существующую часть кода без особых временных затрат.

Буду очень благодарен за любые мысли. Все таки серверная и клиентская архитектуры сильно отличаются, я в замешательстве :-).
  • Вопрос задан
  • 5009 просмотров
Пригласить эксперта
Ответы на вопрос 4
bo883
@bo883
Backbonejs+underscorejs+requirejs=Счастье
Chaplinjs=Счастье
Зы: Знание js обязательно.
Ответ написан
Комментировать
g27
@g27
Ответ написан
Комментировать
@sergealmazov
Возьмите уже ExtJS. Один раз разберетесь и с архитектурой будет все в порядке.
Ответ написан
tamtakoe
@tamtakoe
https://github.com/tamtakoe/oi.file Менеджер фотографий с обрезкой на сервере. Добавляете в метод $preview код, который должен обрезать, будет обрезка и на клиенте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы