Денис Чистяков — JavaScript на фронте и в тылу
description
Transcript of Денис Чистяков — JavaScript на фронте и в тылу
Фронтенд разработчик
JavaScriptна фронтеи в тылуЧистяков Денис
Я.Субботник, Екатеринбург, 6 июля2013
Кто занимается веб-разработкой?
2
На каких языках?PHP, Python, JavaScript, Node.js?
3
Бэкенд
Киоск с шавермой против ресторана
5
Киоск с шавермой против ресторана
6
Цели Node.JS
Разработать быстрый и легкий фреймворк:• ориентированный на работу с сетью• событийный• способный исполнять JavaScript внутри себя
8
All You Need Is… File
• libUV• epoll• kqueue• /dev/poll• select• …• ???????• PROFIT!
9
Event Loop
10
Схема работы
11
Почему Node.js?
• Быстрый• JavaScript — самый популярный язык
программирования *• Клиентский JS-программист может быстро
пересесть на серверный JS• Удобный интерфейс для написания C/C++ –
биндингов
12
* 21% — по данным статистики github.com/languages
Архитектура
13
GETNginx
ProxyPassNode.js
Worker
Worker
Worker
…
Worker
Node-Cluster
HTMLHTML
Роутинг
Intel Xeon E5-26602×8 ядер8×8 Gb16 рабочих процессов Node.js150 rps на процесс
Сервера и нагрузка
14
Для сравнения, посещаемость Е1 — 10 000 000 * просмотров, т.е. ≈ 115 rps
15
* по данным статистики LiveInternet
Фронтенд
18
Браузер Сервер
1
2
1Node.js
JSON3 4 2
3
4
Различия
19
Бэкенд Фронтенд
File system Ajax
ECMAScript 5 i-ecma
controller.js —
Различия
20
Бэкенд Фронтенд
File system Ajax
ECMAScript 5 i-ecma
controller.js —
Различия
21
Бэкенд Фронтенд
File system Ajax
ECMAScript 5 i-ecma
controller.js —
НЕЛЬЗЯ ПРОСТО ВЗЯТЬ
И ПОЛОЖИТЬКОНТРОЛЛЕР НА КЛИЕНТ
23
Браузер Node.js
controller #1 controller #2
Что получили в итоге?
• Быстроотвечающий, отказоустойчивый сервис• Максимальное реиспользование кода на клиенте и
сервере• Гибкую настройку
24