Node.js
Возможности и перспективы

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


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

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

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



   To provide a purely evented,
   non-blocking infrastructure to
   script highly concurrent programs....
System Threads vs Single Thread
Apache
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...
var http = require('http');
var google = http.createClient(80, 'www.google.com');

var request = google.request('GET', '/'...
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,...
var socket = new io.Socket();
socket.on('connect', function(){
   socket.send('hi!');
})
socket.on('message', function(dat...
Nordstream

var connections = 0;
var nodestream = io.listen(app).nodestream()
  .on('connect', function(){
     connection...
Сообщество
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/
Devcamp nodejs-2010
Devcamp nodejs-2010
Upcoming SlideShare
Loading in …5
×

Devcamp nodejs-2010

1,419 views
1,380 views

Published on

Доклад о Node.js на Devcamp.by

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,419
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Devcamp nodejs-2010

  1. 1. Node.js Возможности и перспективы Antono Vasiljev http://antono.info/ http://github.com/antono/ http://groups.google.com/group/ru-nodejs/
  2. 2. Краткая история всего ¥Chromium (Сентябрь 2008) ¥СommonJS (Январь 2009) ¥Node.js (Февраль 2009)
  3. 3. Задача Node.js: To provide a purely evented, non-blocking infrastructure to script highly concurrent programs. http://nodejs.org/
  4. 4. System Threads vs Single Thread
  5. 5. Apache
  6. 6. Node.js
  7. 7. Событийная, асинхронная модель обработки данных
  8. 8. Операции ввода-вывода унифицированы реализуют интерфейс Stream
  9. 9. Объекты выполняющие I/O регистрируют обработчики событий
  10. 10. И вызывают их...
  11. 11. $.get('ajax/test.html', function(data) { $('.result').html(data); alert('Load was performed.'); });
  12. 12. $.ajax({ url: 'ajax/test.html', success: function(data) { $('.result').html(data); alert('Load was performed.'); }, error: function() {}, complete: function() {}, beforeSend: function() {} });
  13. 13. 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); }); });
  14. 14. JavaScript на сервере Наше все ;)
  15. 15. Повторное исползование кода на клиенте http://requirejs.org
  16. 16. Что уже готово?
  17. 17. PostgreSQL MySQL Redis MongoDB CouchDB Sqilte
  18. 18. Cucumber Selenium Jasmine JSpec Vovs
  19. 19. Express Pintura Geddy
  20. 20. 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(){ … }) });
  21. 21. var socket = new io.Socket(); socket.on('connect', function(){ socket.send('hi!'); }) socket.on('message', function(data){ alert(data); }) socket.on('disconnect', function(){})
  22. 22. 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
  23. 23. Сообщество http://nodejs.ru/ http://groups.google.com/group/ru-nodejs/ http://groups.google.com/group/nodejs/
  24. 24. http://nodejs.org/ http://howtonode.org/ http://antono.info/

×