ݺߣ

ݺߣShare a Scribd company logo
Живые сайты

Рябко Дмитрий
Что есть интерактивность?
Use case
• Сайт похож на Desktop приложение
• Реагирует на события мгновенно (до 200мс)
• Стандартное поведение браузера не нарушено
Целевая аудитория

•   Интернет магазины
•   Соц сети
•   Сайты знакомств
•   Корпоративные сайты
•   Браузерные игры
Плюсы интерактивности
• Сериализированные данные имеют
  меньший объем
• Постоянное соединение, не делаем лишние
  запросы
• Некоторые изменения HTML можно
  распараллелить
• Заранее загрузить следующие шаги
• Снизить время реакции до 200мс
Интернет сервис
Use case для клиента
•   Правильные ссылки в адресной строке
•   Внутренним ссылки работают
•   Отправка формы
•   Кнопка "Назад" работает
•   Курсор загрузки страницы
•   Синхронизация
•   Хранение состояния
Архитектура сервера
• Отдельные сервисы для бизнес логики
• Протокол общения между компонентами
• Кроссплатформенный формат HTML
  шаблонов
• JSON интерфейс может быть адаптирован
  под API
• Брокер сообщений для уведомления
  пользователей
Клиет - Сборка
• Ant, Maven, Make
• >> или copy
• Минифицирование
  – Google Closure
  – YUI Compressor
  – UglifyJS
  – Webassets
jQuery код?
Клиент – код на CoffeScript
Coffescript   JavaScript
Клиент - абстракции



•   Модель
•   Контроллер-Представление
•   Маршрутизатор
•   Коллекция
Клиент - библиотеки
• Blackbone.js
• Spine.js
• ember.js
Клиент – обработчики событий
• Представления
  – Пользовательское
  – Логическое
  – Навигации
  – Интерактивность
Клиент – общее представление
• Переопределяем внутренний href
• Отправка формы
   – Автосохранение
   – Запрос
• Отмена стандартной реакции браузера
Клиент – адресная строка
• HTML5 History API (pushState)
• Изменения якоря ссылки после #
• Трюки с iframe и setInterval


Backbone.history.start ()
Подкласс Backbone.Router



• Ссылка внутренняя?
• return false;
• router.navigate(href.substring(1), {trigger: true, replace: true})
Клиент – адресная строка, что еще?


Обработка Shift, Ctrl + click
    jQuery (button, shiftkey, metakey)
    window.open()
Курсор ожидания
    CSS cursor: style="cursor: wait;"
    Анимированный favicon1.ico
Клиент – синхронизация состояния
Model.fetch() через setInterval()
Постоянное соединение - Транспорт
•   WebSocket
•   HTTP Streaming
•   HTTP Polling
•   Adobe Flash
Транспорт – Абстракции
• Метод для отправки сообщений
• Обработчик получения сообщений
• Обработчик установления и разрыва
  соединения
• Натройки для клиента при инициации
  соединения
Транспорт - Библиотеки
• socket.io
• SockJS
• Коммерческие библиотеки в облаках

Сервер
• Netty, Jetty for Java
• Tornado for Python
Socket.IO
    Клиент                 Сервер - Tornado




Отправить сообщение
Использование шаблонов
Рендеринг - MUSTACHE
A typical Mustache template:
Hello {{name}}
You have just won ${{value}}! {{#in_ca}}
Well, ${{taxed_value}}, after taxes. {{/in_ca}}
Given the following hash:
{        "name": "Chris",
         "value": 10000,
         "taxed_value": 10000 - (10000 * 0.4),
         "in_ca": true
}
Will produce the following:
Hello Chris You have just won $10000!
Well, $6000.0, after taxes.
Сервер – REST API
• Java – Restlet, Apache Wink, Jersey
• Python - web.py, Flask and Bottle
Сервер – брокер сообщений
• Протокол AMQP (Advanced Message
  Queueing Protocol)
• Реализация RabbitMQ

Попроще?
    Тогда Redis
RabbitMQ – точка обмена
• Отправка всем (fanout) - (publish-subscribe)




• Прямая (direct) - (message queue)
• Тематическая (topic) – (pattern)
RabbitMQ - сценарии
• Выполнение длительных операций
• События в реальном времени
  – Постоянное соединение
  – Точка обмена – отправить всем
Спасибо за внимание!




     Вопросы?

More Related Content

What's hot (19)

Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Дмитрий Шахов
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
Омские ИТ-субботники
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
Technopark
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Mikhail Tabunov
тарифный план битрикс дмитрий росляков
тарифный план битрикс   дмитрий росляковтарифный план битрикс   дмитрий росляков
тарифный план битрикс дмитрий росляков
Media Gorod
Облачные решения на платформе IO
Облачные решения на платформе IOОблачные решения на платформе IO
Облачные решения на платформе IO
OntheIO
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov
elenae00
01 server definition
01 server definition01 server definition
01 server definition
mcroitor
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Igor Sazonov
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworksСтажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
7bits
"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунин"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунин
it-people
Frontendlab: Фреймворк Duranda js - Виктор Сотов
Frontendlab: Фреймворк Duranda js  - Виктор СотовFrontendlab: Фреймворк Duranda js  - Виктор Сотов
Frontendlab: Фреймворк Duranda js - Виктор Сотов
GeeksLab Odessa
Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»
e-Legion
Lesson1
Lesson1Lesson1
Lesson1
jinol
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera Vilenskaya
Alex Ilyin
опыт Clickberry.com стартап на drupal в облаке павел загор
опыт Clickberry.com   стартап на drupal в облаке павел загоропыт Clickberry.com   стартап на drupal в облаке павел загор
опыт Clickberry.com стартап на drupal в облаке павел загор
drupalconf
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
EatDog
72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/з72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/з
Roman Brovko
Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupal
Yury Glushkov
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Дмитрий Шахов
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
Омские ИТ-субботники
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
Technopark
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Mikhail Tabunov
тарифный план битрикс дмитрий росляков
тарифный план битрикс   дмитрий росляковтарифный план битрикс   дмитрий росляков
тарифный план битрикс дмитрий росляков
Media Gorod
Облачные решения на платформе IO
Облачные решения на платформе IOОблачные решения на платформе IO
Облачные решения на платформе IO
OntheIO
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov
elenae00
01 server definition
01 server definition01 server definition
01 server definition
mcroitor
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Igor Sazonov
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworksСтажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
7bits
"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунин"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунин
it-people
Frontendlab: Фреймворк Duranda js - Виктор Сотов
Frontendlab: Фреймворк Duranda js  - Виктор СотовFrontendlab: Фреймворк Duranda js  - Виктор Сотов
Frontendlab: Фреймворк Duranda js - Виктор Сотов
GeeksLab Odessa
Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»
e-Legion
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera Vilenskaya
Alex Ilyin
опыт Clickberry.com стартап на drupal в облаке павел загор
опыт Clickberry.com   стартап на drupal в облаке павел загоропыт Clickberry.com   стартап на drupal в облаке павел загор
опыт Clickberry.com стартап на drupal в облаке павел загор
drupalconf
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
EatDog
72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/з72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/з
Roman Brovko
Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupal
Yury Glushkov

Viewers also liked (20)

Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
Морфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMOМорфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMO
Artem Lukanin
Иван Ямщиков, Яндекс
Иван Ямщиков, ЯндексИван Ямщиков, Яндекс
Иван Ямщиков, Яндекс
Yandex
Внутреняя оптимизация
Внутреняя оптимизацияВнутреняя оптимизация
Внутреняя оптимизация
prmegaindex
20131210прохоренков
20131210прохоренков20131210прохоренков
20131210прохоренков
Yandex
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Yandex
Кейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебелиКейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебели
Нарижный Денис
повышение продаж
повышение продажповышение продаж
повышение продаж
prmegaindex
методические рекомендации_2_часть
методические рекомендации_2_частьметодические рекомендации_2_часть
методические рекомендации_2_часть
Alexander Shapovalov
Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)
Fedotov Alex
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
Морфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMOМорфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMO
Artem Lukanin
Иван Ямщиков, Яндекс
Иван Ямщиков, ЯндексИван Ямщиков, Яндекс
Иван Ямщиков, Яндекс
Yandex
Внутреняя оптимизация
Внутреняя оптимизацияВнутреняя оптимизация
Внутреняя оптимизация
prmegaindex
20131210прохоренков
20131210прохоренков20131210прохоренков
20131210прохоренков
Yandex
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Yandex
Кейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебелиКейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебели
Нарижный Денис
повышение продаж
повышение продажповышение продаж
повышение продаж
prmegaindex
методические рекомендации_2_часть
методические рекомендации_2_частьметодические рекомендации_2_часть
методические рекомендации_2_часть
Alexander Shapovalov
Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)
Fedotov Alex

Similar to живые сайты (20)

Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Ontico
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей СмирновКлиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
Ontico
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
05 razrabotka pod insales
05 razrabotka pod insales05 razrabotka pod insales
05 razrabotka pod insales
Sokolov Artyom
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePoint
Vitaly Baum
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
Cache administration tool report - rus-1
Cache administration tool   report - rus-1Cache administration tool   report - rus-1
Cache administration tool report - rus-1
ivanshmidt
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
Vadim Kruchkov
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
Ontico
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
PVasili
Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application
Yandex
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
CodeFest
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
Олег Винников
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
Alexandr Petrov
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты
Roman Brovko
YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011
CodeCamp
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
Regn
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Ontico
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Ontico
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей СмирновКлиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
Ontico
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePoint
Vitaly Baum
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
Cache administration tool report - rus-1
Cache administration tool   report - rus-1Cache administration tool   report - rus-1
Cache administration tool report - rus-1
ivanshmidt
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
Vadim Kruchkov
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
Ontico
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
PVasili
Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application
Yandex
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
CodeFest
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
Олег Винников
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
Alexandr Petrov
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты
Roman Brovko
YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011
CodeCamp
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
Regn
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Ontico

живые сайты

  • 3. Use case • Сайт похож на Desktop приложение • Реагирует на события мгновенно (до 200мс) • Стандартное поведение браузера не нарушено
  • 4. Целевая аудитория • Интернет магазины • Соц сети • Сайты знакомств • Корпоративные сайты • Браузерные игры
  • 5. Плюсы интерактивности • Сериализированные данные имеют меньший объем • Постоянное соединение, не делаем лишние запросы • Некоторые изменения HTML можно распараллелить • Заранее загрузить следующие шаги • Снизить время реакции до 200мс
  • 7. Use case для клиента • Правильные ссылки в адресной строке • Внутренним ссылки работают • Отправка формы • Кнопка "Назад" работает • Курсор загрузки страницы • Синхронизация • Хранение состояния
  • 8. Архитектура сервера • Отдельные сервисы для бизнес логики • Протокол общения между компонентами • Кроссплатформенный формат HTML шаблонов • JSON интерфейс может быть адаптирован под API • Брокер сообщений для уведомления пользователей
  • 9. Клиет - Сборка • Ant, Maven, Make • >> или copy • Минифицирование – Google Closure – YUI Compressor – UglifyJS – Webassets
  • 11. Клиент – код на CoffeScript Coffescript JavaScript
  • 12. Клиент - абстракции • Модель • Контроллер-Представление • Маршрутизатор • Коллекция
  • 13. Клиент - библиотеки • Blackbone.js • Spine.js • ember.js
  • 14. Клиент – обработчики событий • Представления – Пользовательское – Логическое – Навигации – Интерактивность
  • 15. Клиент – общее представление • Переопределяем внутренний href • Отправка формы – Автосохранение – Запрос • Отмена стандартной реакции браузера
  • 16. Клиент – адресная строка • HTML5 History API (pushState) • Изменения якоря ссылки после # • Трюки с iframe и setInterval Backbone.history.start () Подкласс Backbone.Router • Ссылка внутренняя? • return false; • router.navigate(href.substring(1), {trigger: true, replace: true})
  • 17. Клиент – адресная строка, что еще? Обработка Shift, Ctrl + click jQuery (button, shiftkey, metakey) window.open() Курсор ожидания CSS cursor: style="cursor: wait;" Анимированный favicon1.ico
  • 18. Клиент – синхронизация состояния Model.fetch() через setInterval()
  • 19. Постоянное соединение - Транспорт • WebSocket • HTTP Streaming • HTTP Polling • Adobe Flash
  • 20. Транспорт – Абстракции • Метод для отправки сообщений • Обработчик получения сообщений • Обработчик установления и разрыва соединения • Натройки для клиента при инициации соединения
  • 21. Транспорт - Библиотеки • socket.io • SockJS • Коммерческие библиотеки в облаках Сервер • Netty, Jetty for Java • Tornado for Python
  • 22. Socket.IO Клиент Сервер - Tornado Отправить сообщение
  • 24. Рендеринг - MUSTACHE A typical Mustache template: Hello {{name}} You have just won ${{value}}! {{#in_ca}} Well, ${{taxed_value}}, after taxes. {{/in_ca}} Given the following hash: { "name": "Chris", "value": 10000, "taxed_value": 10000 - (10000 * 0.4), "in_ca": true } Will produce the following: Hello Chris You have just won $10000! Well, $6000.0, after taxes.
  • 25. Сервер – REST API • Java – Restlet, Apache Wink, Jersey • Python - web.py, Flask and Bottle
  • 26. Сервер – брокер сообщений • Протокол AMQP (Advanced Message Queueing Protocol) • Реализация RabbitMQ Попроще? Тогда Redis
  • 27. RabbitMQ – точка обмена • Отправка всем (fanout) - (publish-subscribe) • Прямая (direct) - (message queue) • Тематическая (topic) – (pattern)
  • 28. RabbitMQ - сценарии • Выполнение длительных операций • События в реальном времени – Постоянное соединение – Точка обмена – отправить всем