Использование Node.js с Django и Backbone.js
Некоторые предпосылки:. Я планирую создать приложение с Django как backend и использовать Backbone.js в качестве фреймворка Javascript. Это одностраничное приложение (SPA), и именно по этой причине я решил использовать Backbone.js. Приложение похоже на механизм ведения блога; пользователи публикуют записи, содержащие текст и изображения, и могут просматривать их с помощью "тега". Они могут выполнять поиск через свои записи с помощью "тега" или определенного слова.
В последнее время, услышав всю суету о Node.js, мне интересно, как это может помочь моему приложению? Но я не хочу, чтобы приложение выполнялось исключительно на Node.js на бэкэнд, т.е. Я все еще хочу использовать Django для бэкэнд. Можно ли использовать Node для "среднего конца", как упомянуто здесь?
Как оптимизировать мое приложение с помощью Node.js?
Ответы
Ответ 1
Похоже, ваше приложение не обязательно нужно Node.js. Основные причины, по которым вы, возможно, захотите использовать Node в дополнение к более традиционной структуре, такой как Django или Rails, - это если в вашем приложении есть реальный или многопользовательский аспект.
Я бы не использовал Node.js, потому что в этом есть много проблем - если вам нужна вышеупомянутая функциональность, тем не менее, это может быть здорово.
Архитектура высокого уровня вашего приложения может выглядеть примерно так:
Django
- Обслуживание одной страницы
- Служебные активы (css, js, images и т.д.)
- Обработка соединения с БД - лучше всего настроить маршруты RESTful для каждой модели данных
- Обработка данных и т.д.
Магистральные
- Обработка взаимодействия с пользователем
- Сделать http-запросы для чтения и записи данных
Node (необязательно)
- Используйте что-то вроде Socket.io, чтобы уведомлять клиентов об обновлениях (вместо полирования).
- Вы можете заменить функциональность Django на одну или комбинацию Node модулей
Ответ 2
Если вы чувствуете себя комфортно с python и Django в целом, я бы рекомендовал использовать веб-сервер, например Tornado. Он очень прост в использовании и имеет крутую кривую обучения, если вы знакомы с Django. В общем, вы увидите улучшения производительности, и у вас будет возможность реализовать иначе "неясную" функциональность, например, кометное программирование.
Что касается интерфейса, да, Backbone - отличный выбор, но следите за Coffeescript тоже...