Node.js

4,610 views

Published on

Introduction to something the cool kids are using now a days, Node.js. Presented in the awesome Barcamp San Juan

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

No Downloads
Views
Total views
4,610
On SlideShare
0
From Embeds
0
Number of Embeds
104
Actions
Shares
0
Downloads
93
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

  • Google's V8 Javascript engine - That thing that makes Google Chrome so fast.
    JavaScript tradicionalmente lo hemos visto ejecutandose en el web browser, pero recientemente ha habido un considerable interés en llevarlo a la parte del servidor, gracias al proyecto CommonJS

    Con sistemas compatabiles con CommonJS, puedes utilizar Javascript para escribir:
    Server-side JavaScript applications
    Command line tools
    Desktop GUI-based applications
    Hybrid applications (Titanium, Adobe AIR)

    Evitar que las operaciones lentas bloqueen o limiten otras operaciones.

    En el modelo basado en eventos, se registra lo que debería ocurrir cuando un evento específico ocurre.

  • Su objetivo es proporcionar un increíblemente poderoso sistema de I/O a través del cual se puede construir aplicaciones altamente eficiente y escalable sin ningún conocimiento de
    "temas avanzados" como threading, procesos, etc.



  • La solución - Evitar que las operaciones lentas bloqueen o limiten otras operaciones.
    _________________________

    Esto se hace utilizando un modelo de programación basado en eventos similares a Python's Twisted framework or Ruby's EventMachine..


    Event-based vs Thread based
    En el modelo basado en eventos, se registra lo que debería ocurrir cuando un evento específico ocurre.
    Esto es distinto de threaded programming, que requiere que el desarrollador identifique el evento, cree el thread, ejecute el proceso, acabe el thread.
    Node.js se aprovecha del hecho de que los servidores pasan la mayor parte de su tiempo de espera para operaciones de I / O, como leer un archivo de un disco duro, acceso a un servicio web externo o en espera de un archivo a fin de ser subido, porque estas operaciones son mucho más lento que operaciones en memoria. Toda operación de I/O en Node.js es asincrónica, lo que significa que el servidor puede continuar procesando incoming requests, mientras que la operación de I / O se llevan a cabo.

    Servidores web como Apache que se usan para servir PHP y otros scripts son thread based, ya que generar un system thread para cada incoming request. Esto está muy bien para muchas aplicaciones, pero el thread based model no escala bien con muchas conexiones de larga vida, como aquellas necesarias para servir real-time applications como Friendfeed or Google Wav

  • doSomethingUnrelatedLikeFetchingSomethingElse is gonna have to wait for the slow readFromDatabase to finish in a normal language like PHP.

  • No hay necesidad de esperar por el disco, has otra cosa mientras tanto!
  • La forma más sencilla de describir el modelo de eventos es que es exactamente cómo la interactividad del programa en el browser.

    En la programación de procedimientos, se podría pensar que el proceso tiene que esperar a que el request sea realizado y luego continuar sobre el procesamiento del resto del programa.

    En la programación basada en eventos, la función se identifica y se almacena hasta que el evento especificado se cumpla.

    El proceso del programa continúa, no se detiene ni se "bloquea" esperando por el resto de la operación

  • En una aplicación web, lo mas que toma tiempo de respuesta suele el tiempo que se tarda en ejecutar todos los queries de la base de datos. Con Node.js, puedes ejecutar todos los queries a la vez, reduciendo el tiempo de respuesta a la duración que se necesita para ejecutar el query más lento.

    Se puede utilizar Node.js para compartir código entre el browser y el servidor.

    Javascript está siendo empujado por velocidad de forma agresiva




  • ×