No me llames Dolores, llámame Node

La verdad es que Node.js tiene una enorme progresión visto lo visto desde su nacimiento en el 2009. Como dicen de los jóvenes canteranos de los equipos de fútbol, Node aún no ha tocado techo y se ha hecho un hueco en el desarrollo de aplicaciones web(y no web) a un ritmo trepidante.

Quienes hemos trabajado muy mucho en la parte backend, sabemos el dolor que supone trabajar con un servidor, tener que parchearlo, actualizarlo, utilizar un balanceador de carga, conocer como referenciar los archivos estáticos que en él están alojados, etc.

 

Con Node.js esto no ocurre, pues no desarrollamos una aplicación para alojarla después en un Tomcat o en un Jboss, sino que nuestra aplicación es en sí el servidor y realiza directamente todas las funciones de un servidor web.

Todos conocemos lo complicado que es trabajar eficientemente con conexiones de bases de datos y no morir en el intento.

Recuerdo ahora un proyecto en el cual la aplicación desplegada en un Weblogic duraba en pie 5 o 6 horas antes de tostarse como Julio Iglesias en Barbados. El servidor de aplicaciones era más viejo que Matusalén, pero… ¡A ver quién era el listo que le metía mano a aquello!

Por eso el título de la entrada… no me llames Dolores, llámame Node. Node es más fácil, conlleva menos quebrantos y mucho más eficiente.

Los problemas de rendimiento del lado del servidor siempre vienen derivados de una mala gestión del pool de la BBDD al no cerrarse bien sus conexiones o también de los timeouts que saltan al estar esperando demasiado tiempo una respuesta. ¡La eterna pesadilla de la Entrada/Salida!

Node.js se puede entender como una plataforma que gestiona aplicaciones JavaScript, pero es mucho más exacto definirlo como un intérprete JS.

No confundamos plataforma con Framework, pues ya veremos más adelante algunos frameworks desarrollados sobre Node que facilitan mucho algunos aspectos del desarrollo, como el archiconocido Express.

Algunas de las ventajas de Node.js sobre otras plataformas es que es mucho más rápido, gestiona tremendamente bien los casos de Entrada/Salida, está desarrollado sobre el motor V8 de Google Chrome (aunque el nombre parezca de Audi) y los programadores de JavaScript pueden entender sin problema el código fuente por primera vez. Ya no hace falta dedicar recursos diferenciados al Server y al Front, pues un programador con buena base de JS entenderá perfectamente lo que está escrito para correr en Node.

node-1

Pero no solo de JS vive Node.js y otras de sus principales características que lo hacen tan atractivo para aplicaciones en red que necesitan alto rendimiento y disponibilidad es su modelo orientado a eventos (event-driven) y asíncrono.

Es decir, al igual que los navegadores modernos, Node se basa en un bucle que gestiona eventos según van surgiendo y además, al ser asíncrono, la aplicación no se queda cuajada esperando una respuesta de base de datos o mientras se termina de leer un fichero pesado.

Antes de la llegada de Ajax a los navegadores, todos recordamos estar esperando que una página terminase de rellenar los valores de un desplegable o trajera a pantalla los resultados de una búsqueda antes de poder seguir interactuando con la misma.

Node.js comparte la filosofía Ajax e ininterrumpidamente trata eventos que llegan a su motor mientras se resuelven las transacciones más pesadas de manera asíncrona. Una vez completadas éstas, vuelven al bucle principal y son servidas en el navegador/cliente.

Por tanto, y para no aburrir al respetable, son múltiples las ventajas de Node sobre la manera de trabajar con los servidores web clásicos y es por eso que se está utilizando mucho en aplicaciones de red, en la creación de APIs,  servicios en tiempo real, de comunicaciones utilizando la potencia de los websockets como son los chats

¡Hablando de chats! Aún recuerdo una práctica de la universidad que pretendía que hiciéramos uno en Java utilizando threads y sockets. Lo pasamos peor que Pablo Iglesias los 20N y las conversaciones se entrecruzaban y no llegaban en el orden correcto al destinatario. Aún no entiendo por qué y el profesor tampoco.

En próximas entradas desarrollaremos un chat sencillo utilizando Node.js y conseguiremos que lo entienda todo el mundo, hasta Epi y Blas ¡Palabra!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Crea un sitio web o blog en WordPress.com

Subir ↑

Crea tu página web en WordPress.com
Empieza ahora
A %d blogueros les gusta esto: