20
RethinkDB + Socket.io Real-time Web 2.0

JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Embed Size (px)

Citation preview

Page 1: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

RethinkDB + Socket.ioReal-time Web 2.0

Page 2: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Привет!Меня зовут Андрей КопёнкинЯ CTO во FlyElephant.

Занимаюсь fullstack разработкой на JavaScript.

Page 3: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Начнем с предисторииЧто? О чем? И как?

1

Page 4: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

World Wide Web◇ CERN httpd и простая передача HTML (1990-1995)

◇ Рождение PHP и первый Server-Side Scripting (1995)

◇ Бум SPA, рождение клиентских фреймворков(2009-наст.)

◇ Бум документоориентированных баз данных. Рождение MongoDB, Node.js (2009-наст.)

◇ WebSockets RFC 6455 (2011)

◇ Конец...?

Page 5: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"
Page 6: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Real-Time Database

Page 7: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Что это означает?

База данных сама пушит вам новые данные и изменения!

Page 8: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

RethinkDB - распределенная БД

Page 9: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Для чего RethinkDB хороша?

◇ Совместное web и mobile приложение

◇ Стриминговая аналитика

◇ Мультиплеерные игры

◇ Real-time marketplace

Page 10: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Есть же realtime sync api типа Firebase и т. п.

Зачем же нужен RethinkDB?

Page 11: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

1. RethinkDB - Open-source продукт

2. Realtime sync api дает не такой богатый язык запросов

3. Realtime sync api - в основном разворачивается в браузере. RethinkDB - как обычная база данных может быть установлена везде

Page 12: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

ReQL - язык запросов RethinkDB

◇ Нативно встраивается в код на том языке, на котором вы пишите свое приложение.

◇ Каждый запрос состоит из цепочки функций, составленной разработчиком

Page 13: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Как выглядит запрос?

Page 14: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Changefeed запрос

Page 15: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Official drivers◇ JavaScript

◇ Java

◇ Python

◇ Ruby

Page 16: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

3REE stack

React + Redux +RethinkDB + Express

Page 17: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

November 2015RethinkDB 2.0

Production-ready release

Page 18: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Live Demo

Page 19: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Real-time Web 2.0

Page 20: JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"

Thanks!Вопросы?Контакты◇ [email protected]◇ https://www.facebook.com/andrew.kopyonkin