-
Notifications
You must be signed in to change notification settings - Fork 1
Components
baden edited this page Dec 20, 2012
·
28 revisions
- Python web-server: Tornado:
- Неблокирующие библиотеки: список
- Неблокирующие компоненты для tornado: Motor (http://github.com/bitly/asyncmongo)
- База данных: MongoDB
- Кеширование: memcached + патч для репликации Пара статей на тему: раз и два. Хотя проект кажется заброшенным. Возможно неплохой альтернативой может стать: hash_ring
- Сервер обмена:
- Как один из вариантов: nginx-push-stream-module
- Кеш и возможно обмен через pub/sub: redis.io (sudo add-apt-repository ppa:rwky/redis)
Честно говоря работа с неблокирующими вызовами tornado через tornado.get у меня вызывает уныние. Оборачивать все функции в @gen и все вызовы работы с базой данных в gen.Task мне кажется жутко неудобным. Натолкнулся на одну интересную библиотеку.
Перепробовал три варианта:
- Синхронная работа без каких-либо оберток. Неприемлемо в силу очевидной линейности работы.
- Использование библиотеки motor. Это ад разработчика - оборачивать каждый вызов mongo в yield, Op и т.п.
- Использование простой обертки. Библиотека чуть выше по идее должны была делать тоже самое, но у меня она заработала с глюком при большом кол-ве одновременных запросов. Этот вариант мне понравился больше всего, никаких многоэтажных оберток, никаких калбеков. В примитивном тесте со sleep и чтением из пробной базы показал наибольшую производительность. Хотя обнаружен баг: похоже не передаются параметры во внутренние процедуры. Откровенно говоря есть подозрение что эта "обертка" просто пример, и не годится для промышленного применения.
Недостатки выбора: по сути это синхронная работа, но в отдельном потоке, поэтому нет возможности запустить, скажем, запрос к базе данных и продолжить работу над чем-то другим.
- Шаблон HTML5: Boilerplate (Github)
- Каркас: Bootstrap (Github)
- underscore
-
angular выглядит реально круто!
- можно обратить внимание также на angular-ui
- Это вроде бы уже есть в составе angular-ui, но всеже: chosen
- google-maps-utility-library-v3
- Форматирование времени и даты
- Все что касается графики, очень крутая либа d3
- графики
- нанесение svg на карту
- а вот как можно реализовать выноску
Есть возможность разрабатывать приложение, которое может работать без установки браузера. Причем можно сделать самодостаточный исполняемый файл (просто объединив).
Ссылки:
- База данных mongolab
Вот возникла мысль хостить проект на github. Например страниа может быть тут.
- PyPy
sudo add-apt-repository ppa:pypy/ppa