Введение в node.js

4,896 views
5,014 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,896
On SlideShare
0
From Embeds
0
Number of Embeds
3,008
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Введение в node.js

  1. 1. Введение ПреимуществаПрактика использования [Денис Речкунов]
  2. 2. Введение15 сентября 2011 г. Денис Речкунов 2
  3. 3. История Автор Ryan Dahl (Joyent, Inc.) Лицензия MIT Используемый язык JavaScript v.0.0.1 - май 2009 года Сайт http://nodejs.org Аналоги • Twisted (Python) • EventMachine (Ruby) • AnyEvent (Perl)15 сентября 2011 г. Денис Речкунов 3
  4. 4. node.js – что это такое?• Single threaded event loop platform• Набор JavaScript интерфейсов к V8 VM• JavaScript фреймворк для создания серверных приложений – Реализация основных сетевых протоколов и крипто-алгоритмов – Неблокирующие версии операций I/O15 сентября 2011 г. Денис Речкунов 4
  5. 5. Термины I/O• Non-blocking – L1 (3 cycles) – L2 (14 cycles) – RAM (250 cycles)• Blocking – Disk (41 000 000 cycles) – Network (240 000 000 cycles)15 сентября 2011 г. Денис Речкунов 5
  6. 6. Термины I/OБлокировка до получения результатаИсполнение другого кода, пока не возниклособытие, что результат получен15 сентября 2011 г. Денис Речкунов 6
  7. 7. node.js и I/O• Все “блокирующие” операции ввода/вывода в node.js реализованы асинхронно на основе обратных вызовов• Для необходимых случаев есть их синхронные версии• Нет необходимости в множестве потоков15 сентября 2011 г. Денис Речкунов 7
  8. 8. Преимущества15 сентября 2011 г. Денис Речкунов 8
  9. 9. node.js - преимущества• Высокая масштабируемость• Единая языковая среда как для client-side, так и для server-side разработчиков• Кроссплатформенность (Win, Linux, Mac)• Использование самой быстрой на текущий момент JavaScript VM (Google V8)• Подробная документация и отзывчивое community15 сентября 2011 г. Денис Речкунов 9
  10. 10. Node package manager• Online репозиторий библиотек для node.js – Адаптеры БД (Postgre, MySQL, SQLite, MongoDB) – Реализации протоколов (IRC, XMPP, POP etc.) – Web Tools (WebSocket server, Web-frameworks) – Алгоритмы• Утилита npm для Mac, Linux и Windows(скоро) На текущий момент ~3900 модулей15 сентября 2011 г. Денис Речкунов 10
  11. 11. Практика использования15 сентября 2011 г. Денис Речкунов 11
  12. 12. HTTP-сервер• Chunked encoding (1 TCP соединение для клиента)• Pipelined messages (Несколько HTTP GET/HEAD запросов в одном TCP пакете)• Поддержка соединения для long-polling15 сентября 2011 г. Денис Речкунов 12
  13. 13. WEB-чат (демонстрация) Long polling JQuery node.js Sources https://github.com/ry/node_chat15 сентября 2011 г. Денис Речкунов 13
  14. 14. Q/A Денис Речкуновhttp://nodejs.org denis.rechkunov@gmail.com15 сентября 2011 г. Денис Речкунов 14

×