• Stars
    star
    175
  • Rank 218,059 (Top 5 %)
  • Language
    Clojure
  • Created almost 7 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Playphrase.me

Playphrase.me website v. 2.0 (2018).

Full Stack Clojure

По нашему мнению, на данный момент, Сlojure и СlojureScript являются лучшим выбором для создания систем для вэб c насыщенным UI. Старая версия сайта была реализована на angular.js/node.js (2014) и она работала хорошо для своего времени. Новая же версия отражает новые требования, проще по устройству и значительно выросла в качестве и быстродействии.

Server - Luminus (Clojure). Client - reagent/re-frame (ClojureScript).

Сервер на Clojure создает Rest API, и обеспечивает ограничения доступа к ресурсам. Посмотреть документаци к API можно по
адресу.

Клиентское приложение реализовано на re-frame (Reagent (React.js для ClojureScript), а так же MVC фреймворк (аналог Redux.js для ClojureScript)). Клиентское приложение обеспечивает функционал по поиску - быстрое отображение результата в процессе ввода поискового запроса, клавиатурные сокращения, навигация по результату, доступ к RestAPI, идентификация пользователей.

Сервис

Сайт занимается поиском фраз в цитатах из фильмов и сериалов. Особенность сервиса в результате поиска - при поиске создается бесконечный "стрим" из видео-цитат, которые проигрываются друг за другом.

Челенджи

При создании сайта были решены следующие проблемы - быстрый "inline" поиск фраз, "бесшовное" воспроизведение видео, "караоке" - подсветка произносимого в данный момент слова, переходы на отдельные слова, предложение исправление поиска, оптимизация для mobile, responsive interface.

Предзагрузка видео

Загрузка видео происходит в бэкграунде - одновременно на странице существует два видео проигрывателя - один соответсвенно проигрывает видео, а другой загружает следующее - такой конвейер загрузки. Таким образом добивается эффект "бесшовности", хотя в действительно видео-стрим состоит из множества видео-фрагментов, а не одного большого. Пользователи отмечают "хорошую скорость" работы сервиса - немалая часть этого ощущения основывается на быстрой загрузке видео.

Inline поиск

Так же был реализован поиск фраз при вводе текста пользователя - запрос на сервер идет сразу, без задержек, обеспечивая отзывчивость сервиса. Данный быстрый поиск был бы не возможен без отдельного сервиса поиска фраз (код данного сервиса не доступен в дынных момент на github). С помощью данного сервиса (так же реализованного на Clojure) поиск по тексту производится в среднем за 50 наносекунд.

Оптимизация для мобильных устройств

todo

Старая версия

Old site was built on angular.js and node.js (2014) Доступна в этом репозитории (ссылка).

Лицензия

Copyrights © Playphrase.me