Devcamp nodejs-2010

1,481 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,481
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
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/

×