Nodejs.introduccion

702 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
702
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Nodejs.introduccion

  1. 1. Phillip - @killfil
  2. 2. Para que sirve node.js? Hacer backends
  3. 3. Para que sirve node.js? Hacer backends No bloqueantes
  4. 4. Para que sirve node.js? Hacer backends No bloqueantes Asincrónicos
  5. 5. Para que sirve node.js? Hacer backends No bloqueantes Asincrónicos Javascript
  6. 6. Problema “El servidor esta lento”Posible causa: IO <antes> resultado = query(’update water set tipo=2’) <después>
  7. 7. Problema: las distancias Acceso Distancia CPU 15 ciclos RAM 250 ciclos metros? Disco 41.000.000 ciclos Red 240.000.000 ciclos
  8. 8. Problema: las distancias Acceso Distancia CPU 15 ciclos RAM 250 ciclos Disco 41.000.000 ciclos Red 240.000.000 ciclos Años luz!
  9. 9. Problema: las distancias Ciencia ficción: hibernación…
  10. 10. Problema: las distancias Llegué = { Print(‘listo!’); } <antes> query(’viajar de A a B’, Llegué) <después>
  11. 11. Problema: las distancias Llegué = { Print(‘listo!’); } query(’viajar de A a B’, Llegué)Se demora lo mismo, pero no bloquea!
  12. 12. Porque es node.js interesante? (Sólo un par de ideas)
  13. 13. Porque es interesante?• Engine
  14. 14. Porque es interesante?• Engine• Reactor
  15. 15. Porque es interesante?• Engine• Reactor• Cultura lenguaje
  16. 16. Porque es interesante?• Engine• Reactor• Cultura lenguaje• IO
  17. 17. Porque es interesante?• Engine• Reactor• Cultura lenguaje• IO• Librerías
  18. 18. Porque es interesante?• Engine• Reactor• Cultura lenguaje• IO• Librerías
  19. 19. Hello worldvar http = require(‘http’);logica = function(req, res) { res.end(‘hola’);}var app = http.createServer(logica)app.listen(80);
  20. 20. No bloquear el reactor!Filosofía: El CPU no se usa tanto… Cálculos “El problema es la IO”
  21. 21. Bye worldvar http = require(‘http’);logica = function(req, res) { res.end(calcular_pi());}var app = http.createServer(logica)app.listen(80);
  22. 22. Pero necesito calcular! Child_process WebWorkers Extensión C++ Comunicación por red AMQP
  23. 23. EcosistemaNode Package Manager: NPM > 2.500 paquetes Ok.. Que hacemos?
  24. 24. “Sitio móvil que muestre la misma info que la web” 1.  Obtener info regularmente 2.  Disponibilizar la info obtenida 3.  Sito móvil que la use

×