SlideShare a Scribd company logo
Node.js
Возможности и перспективы

Antono Vasiljev
http://antono.info/
http://github.com/antono/
http://groups.google.com/group/ru-nodejs/
Краткая история всего


  ¥Chromium (Сентябрь 2008)

  ¥СommonJS (Январь 2009)

  ¥Node.js (Февраль 2009)
Задача Node.js:



   To provide a purely evented,
   non-blocking infrastructure to
   script highly concurrent programs.


                                   http://nodejs.org/
System Threads vs Single Thread
Apache
Devcamp nodejs-2010
Node.js
Событийная, асинхронная модель
      обработки данных
Операции ввода-вывода
унифицированы реализуют
    интерфейс Stream
Объекты выполняющие I/O регистрируют
         обработчики событий
И вызывают их...
$.get('ajax/test.html', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});
$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
     $('.result').html(data);
     alert('Load was performed.');
  },
  error: function() {},
  complete: function() {},
  beforeSend: function() {}
});
var http = require('http');
var google = http.createClient(80, 'www.google.com');

var request = google.request('GET', '/',
  {'host': 'www.google.com'});
request.end();

request.on('response', function (response) {
  console.log('STATUS: ' + response.statusCode);
  console.log('HEADERS: ' + JSON.stringify(response.headers));
  response.setEncoding('utf8');
  response.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});
JavaScript на сервере
        Наше все ;)
Повторное исползование
    кода на клиенте
        http://requirejs.org
Что уже готово?
PostgreSQL
  MySQL
   Redis
 MongoDB
 CouchDB
  Sqilte
Cucumber
Selenium
 Jasmine
  JSpec
   Vovs
Express
Pintura
 Geddy
Socket.io и Nordstream
var http = require('http'),
    io = require('socket.io')

server = http.createServer(function(req, res){
 res.writeHeader(200, {'Content-Type': 'text/html'});
 res.writeBody('<h1>Hello world</h1>');
 res.finish();
});

// socket.io
var socket = io.listen(server);
socket.on('connection', function(client){
  // new client is here!
  client.on('message', function(){ … })
  client.on('disconnect', function(){ … })
});
var socket = new io.Socket();
socket.on('connect', function(){
   socket.send('hi!');
})
socket.on('message', function(data){
   alert(data);
})
socket.on('disconnect', function(){})
Nordstream

var connections = 0;
var nodestream = io.listen(app).nodestream()
  .on('connect', function(){
     connections++;
     this.emit('connections', connections);
  })
  .on('disconnect', function(){
     connections--;
     this.emit('connections', connections);
  });


:realtime(repaint: 'connections', local: 'connections')
  .connections
    - if (connections > 1)
      p #{connections} people are editing right now
    - else
      p You're all alone, loser
Devcamp nodejs-2010
Сообщество
http://nodejs.ru/
http://groups.google.com/group/ru-nodejs/
http://groups.google.com/group/nodejs/
http://nodejs.org/
http://howtonode.org/
http://antono.info/

More Related Content

PDF
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
PDF
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
PDF
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
PDF
Суперсилы Chrome developer tools
PDF
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
PDF
VolgaCTF 2012 разбор заданий
PDF
Пластилиновый код: как перестать кодить и начать жить
PPT
Web весна 2012 лекция 9
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
Суперсилы Chrome developer tools
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
VolgaCTF 2012 разбор заданий
Пластилиновый код: как перестать кодить и начать жить
Web весна 2012 лекция 9

What's hot (20)

PDF
Erlang tasty & useful stuff
PDF
Вячеслав Олиянчук — Яндекс.Авто 2.0 на Node.js
PDF
Почему Mojolicious?
PPT
Web весна 2013 лекция 9
PPTX
I tmozg js_school
PPTX
JavaScript: прошлое, настоящее и будущее.
PDF
Web internship java script
PDF
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
PDF
Reform: путь к лучшему ORM
PPT
Take more from Jquery
PDF
Performance optimisation in javascript
PDF
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
PDF
Изоморфные Java script приложения с catberry.js
PPTX
Ruby - или зачем мне еще один язык программирования?
PPTX
Native Development
PDF
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...
PDF
«Как перестать отлаживать асинхронные вызовы и начать жить»​
PDF
Изоморфный JavaScript — будущее уже здесь
PDF
Превышаем скоростные лимиты с Angular 2
PPTX
Как не утонуть в мегабайтах JS-кода
Erlang tasty & useful stuff
Вячеслав Олиянчук — Яндекс.Авто 2.0 на Node.js
Почему Mojolicious?
Web весна 2013 лекция 9
I tmozg js_school
JavaScript: прошлое, настоящее и будущее.
Web internship java script
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Reform: путь к лучшему ORM
Take more from Jquery
Performance optimisation in javascript
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
Изоморфные Java script приложения с catberry.js
Ruby - или зачем мне еще один язык программирования?
Native Development
Владимир Алаев, Сергей Белов "Новые возможности bem-tools для автоматической ...
«Как перестать отлаживать асинхронные вызовы и начать жить»​
Изоморфный JavaScript — будущее уже здесь
Превышаем скоростные лимиты с Angular 2
Как не утонуть в мегабайтах JS-кода
Ad

Viewers also liked (9)

PDF
О ThinkWith.Me за 2 минуты
PDF
Работа с унаследованным кодом. Есть ли жизнь после коммита.
PDF
Beyond Ruby (RubyConf Argentina 2011)
PDF
Nastachku slideshttp://www.slideshare.net/squadette/2012-45697461
PPT
Алан Милц - семинар по финансовому потоку
PPT
Rubinius: Ruby написанный на Ruby
ODP
Ruby on Rails for noobs
PDF
Amplifr deck as it was june 2013
PDF
About downloads
О ThinkWith.Me за 2 минуты
Работа с унаследованным кодом. Есть ли жизнь после коммита.
Beyond Ruby (RubyConf Argentina 2011)
Nastachku slideshttp://www.slideshare.net/squadette/2012-45697461
Алан Милц - семинар по финансовому потоку
Rubinius: Ruby написанный на Ruby
Ruby on Rails for noobs
Amplifr deck as it was june 2013
About downloads
Ad

Similar to Devcamp nodejs-2010 (20)

PPT
Node.JS: возможности для РНР-разработчика
PPTX
Node.js введение в технологию, КПИ #ITmeetingKPI
PDF
Introduction in Node.js (in russian)
PDF
Серверный JavaScript: NodeJS и CouchDB
PDF
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
PPT
Эффективное программирование на NodeJS
PPT
ВВЕДЕНИЕ В NODE.JS
PPT
Node.js (RichClient)
PPT
Типичный стек технологий для использования с Node.js
PPT
Current State of Server Side JavaScript
PPTX
Full Stack разработка на JavaScript
PPTX
What do you MEAN? или введение в Fullstack JavaScript
PPT
Node.js (Андрей Костенко)
PDF
Асинхронный JavaScript
ODP
Server Side Javascript (ru)
PPTX
живые сайты
PDF
JavaScript Базовый. Занятие 09.
PPTX
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
PDF
Доставка данных в реальном времени.
PDF
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.JS: возможности для РНР-разработчика
Node.js введение в технологию, КПИ #ITmeetingKPI
Introduction in Node.js (in russian)
Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
Эффективное программирование на NodeJS
ВВЕДЕНИЕ В NODE.JS
Node.js (RichClient)
Типичный стек технологий для использования с Node.js
Current State of Server Side JavaScript
Full Stack разработка на JavaScript
What do you MEAN? или введение в Fullstack JavaScript
Node.js (Андрей Костенко)
Асинхронный JavaScript
Server Side Javascript (ru)
живые сайты
JavaScript Базовый. Занятие 09.
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Доставка данных в реальном времени.
Node.js Меньше сложности, больше надежности Holy.js 2021

Devcamp nodejs-2010