В свободное от работы время мы с Димой Медвинским и Филиппом Нурулиным, желая подтянуть знания в JS, HTML и CSS, создали интересный проект для любителей статистики.
Nerd-o-meter — это сервис, позволяющий узнать статистику устройств, с которых пишут твитты. Искать можно как по запросам, так и по конкретным пользователям.

Идея
Идея проекта возникла во время посещения "Яндекс.субботника": наблюдая за тем, как много людей пишут в твиттер по ходу мероприятия, пришло в голову, что интересно было бы узнать статистику устройств, с которых они пишут и посмотреть как она варьируется от конференции к конференции.
Чуть позже это трансформировалось в идею небольшого сервиса, показывающего статистику по твиттер-клиентам: эта информация элементарно извлекается из API твиттера.
Создание
Сначала это представлялось в виде классического приложения, например на Rails, но в какой-то момент стало понятно что серверная часть тут попросту лишняя: всё что нужно, в частности доступ к Twitter API и построение графиков, доступно прямо в браузере. Таким образом, получился небольшой и легковесный single-page app.
Для построения диаграмм использовался Google Chart Tools, мельком взглянув в сторону нескольких альтернативных решений.
В поиске необходимых для разработки библиотек (хотя в таком небольшом проекте можно было, наверное, обойтись и без них) мне помог отличный сборник microjs.com.
Помимо Chart Tools пригодились следующие библиотеки:- Zepto.js: легковесная замена jquery, нацеленная в первую очередь на мобильные webkit-браузеры. Тем не менее, вполне пристойно работает и в качестве "взрослой библиотеки". В ходе работы был найден небольшой баг при работе с FF, но был быстро исправлен патчем, который был позже отправлен (и принят) обратно в проект zepto на GitHub. Используется для манипуляций DOM и аяксовых запросов к API.
- Underscore.js: на работе один из программистов использовал Scala, поэтому без удобных функциональных способов работы с коллекциями (хотя бы map/filter) он чувствовал себя как без рук. Underscore предоставлял такую возможность и некоторые другие ФП-плюшки.
- SugarSkull: первая версия приложения использовала самописный механизм для перманентных ссылок, способных работать целиком на стороне клиента. С введением ещё одного вида статистики (по твитам конкретного пользователя), схема урлов усложнилась и была прикручена эта библиотека. Она представляет собой простой механизм диспатчинга клиент-сайд урлов.
Одним из преимуществ работы целиком в браузере оказалась возможность хостить на гитхабе не только репозиторий, но и само приложение.
В результате мы получили рабочий инструмент для сбора статистики по twitter-клиентам.
Добавить комментарий