SlideShare una empresa de Scribd logo
Phillip - @killfil
Para que sirve node.js?

    Hacer backends
Para que sirve node.js?

    Hacer backends

    No bloqueantes
Para que sirve node.js?

    Hacer backends

    No bloqueantes

     Asincrónicos
Para que sirve node.js?

    Hacer backends

    No bloqueantes

     Asincrónicos

      Javascript
Problema
                         “El servidor esta lento”
Posible causa: IO

                                     <antes>
                    resultado = query(’update water set tipo=2’)
                                    <después>
Problema: las distancias
         Acceso   Distancia
 CPU                            15 ciclos




 RAM                          250 ciclos
                                            metros?

 Disco                 41.000.000 ciclos



 Red                  240.000.000 ciclos
Problema: las distancias
         Acceso   Distancia
 CPU                            15 ciclos




 RAM                          250 ciclos



 Disco                 41.000.000 ciclos



 Red                  240.000.000 ciclos
                     Años luz!
Problema: las distancias
    Ciencia ficción: hibernación…
Problema: las distancias
              Llegué = {
             Print(‘listo!’);
                  }

                     <antes>
    query(’viajar de A a B’, Llegué)
                   <después>
Problema: las distancias
                Llegué = {
               Print(‘listo!’);
                    }

      query(’viajar de A a B’, Llegué)




Se demora lo mismo, pero no bloquea!
Porque es node.js
  interesante?
        (Sólo un par de ideas)
Porque es interesante?
• Engine
Porque es interesante?
• Engine
• Reactor
Porque es interesante?
• Engine
• Reactor
• Cultura lenguaje
Porque es interesante?
• Engine
• Reactor
• Cultura lenguaje
• IO
Porque es interesante?
• Engine
• Reactor
• Cultura lenguaje
• IO
• Librerías
Porque es interesante?
• Engine
• Reactor
• Cultura lenguaje
• IO
• Librerías
Hello world
var http = require(‘http’);

logica = function(req, res) {
   res.end(‘hola’);
}

var app = http.createServer(logica)
app.listen(80);
No bloquear el reactor!
Filosofía: El CPU no se usa tanto…   Cálculos
          “El problema es la IO”
Bye world
var http = require(‘http’);

logica = function(req, res) {
   res.end(calcular_pi());
}

var app = http.createServer(logica)
app.listen(80);
Pero necesito calcular!

       Child_process

        WebWorkers

       Extensión C++

    Comunicación por red   AMQP
Ecosistema

Node Package Manager: NPM


     > 2.500 paquetes




                        Ok.. Que hacemos?
“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
Nodejs.introduccion

Más contenido relacionado

Similar a Nodejs.introduccion

Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Expressbetabeers
 
Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
javier ramirez
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0wcuestas
 
S4A A2: Hacemos un semáforo
S4A A2: Hacemos un semáforoS4A A2: Hacemos un semáforo
S4A A2: Hacemos un semáforo
UnaCasaInteligente
 
JRuby Al Rescate J2EE
JRuby Al Rescate J2EEJRuby Al Rescate J2EE
JRuby Al Rescate J2EE
Jorge Alberto Rodríguez Suárez
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
Jorge Alberto Rodríguez Suárez
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
RootedCON
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
Ricard Clau
 
Desarrollando aplicaciones de red con Twisted
Desarrollando aplicaciones de red con TwistedDesarrollando aplicaciones de red con Twisted
Desarrollando aplicaciones de red con Twistedjjconti
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
Plain Concepts
 
094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La Tierra
094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La Tierra094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La Tierra
094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La TierraGeneXus
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
INSIGNIA4U
 
sesion_01-JAVA.pdf
sesion_01-JAVA.pdfsesion_01-JAVA.pdf
sesion_01-JAVA.pdf
RocioCarmenCoronadoR
 
Microservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara MicroMicroservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara Micro
Víctor Leonel Orozco López
 
Hardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADHardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RAD
estialvarez
 
Docker ECS en AWS
Docker ECS en AWS Docker ECS en AWS
Docker ECS en AWS
Amazon Web Services LATAM
 
inicios en java
inicios en java inicios en java
inicios en java
Edison Vaca
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Andrés Iturralde
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
Eduardo Castro
 

Similar a Nodejs.introduccion (20)

Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Express
 
Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
 
S4A A2: Hacemos un semáforo
S4A A2: Hacemos un semáforoS4A A2: Hacemos un semáforo
S4A A2: Hacemos un semáforo
 
JRuby Al Rescate J2EE
JRuby Al Rescate J2EEJRuby Al Rescate J2EE
JRuby Al Rescate J2EE
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Desarrollando aplicaciones de red con Twisted
Desarrollando aplicaciones de red con TwistedDesarrollando aplicaciones de red con Twisted
Desarrollando aplicaciones de red con Twisted
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
 
094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La Tierra
094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La Tierra094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La Tierra
094 Pensando En La Nube Factores Para Mantener Los Pies Sobre La Tierra
 
Hardware Hacking Rad
Hardware Hacking RadHardware Hacking Rad
Hardware Hacking Rad
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
sesion_01-JAVA.pdf
sesion_01-JAVA.pdfsesion_01-JAVA.pdf
sesion_01-JAVA.pdf
 
Microservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara MicroMicroservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara Micro
 
Hardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADHardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RAD
 
Docker ECS en AWS
Docker ECS en AWS Docker ECS en AWS
Docker ECS en AWS
 
inicios en java
inicios en java inicios en java
inicios en java
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
 

Nodejs.introduccion