No description, website, or topics provided.
Branch: master
Clone or download
Latest commit d50a62a Feb 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
env
micro
resources google search optimizations Jan 29, 2019
src
test
.dockerignore
.gitignore
.projectile fix Jan 22, 2019
Capstanfile init project Feb 2, 2018
Dockerfile
Procfile
README.md
dev-config.edn
docker-compose.yml
nohup.out
project.clj
test-config.edn init project Feb 2, 2018

README.md

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