NodeJS, un polivalente framewok para el desarrollo frontend


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+

Dentro de las plataformas de desarrollo de propósito general, NodeJS es una de las opciones más extendidas en el frontend, ya que nos permite nos permite sacar JavaScript fuera del contexto del navegador. NodeJS usa el motor de Javascript de Google Chrome, denominado V8, lo que multiplica su potencial en el desarrollo de operaciones. Actualmente, se usa mucho NodeJS como optimizador de aplicaciones web y para ejecutar tareas diversas que nos permitan mejorar los flujos de trabajo en general.

Aunque quizá Python, PHP o Java se aproximen bastante a NodeJS, no podemos decir que sea un lenguaje propiamente dicho, ya que trabaja con JavaScript. Podríamos decir, en cambio, que NodeJS es un framework, un marco de trabajo que nos permite un desarrollo acelerado de aplicaciones, ya que cuenta con muchas utilidades ya listas para usar en una variada gama de casos de uso. Además, cuenta con una gran comunidad que crea y publica paquetes de software como código abierto, adicionales al propio NodeJS, con los que se pueden implementar todavía muchas otras funcionalidades comunes en aplicaciones.

NodeJS desde el servidor

En cuanto al uso de NodeJS como lenguaje del lado del servidor encontramos una gran cantidad de tareas importantes, desde la creación de webs con acceso a base de datos, gestión de contenido, etc. hasta la entrada salida mediante sockets. Quizás el uso más habitual en la actualidad sea la de creación de APIs REST, un modelo de trabajo común en las aplicaciones modernas, ya que nos permite una separación total de las capas de aplicación. Las API REST en general permiten el desarrollo de backend independiente del lado frontend, pudiendo incluso crear varios tipos de frontales implementados sobre el mismo backend, no solo para la web, sino también para desarrollo de apps para dispositivos.

Las características de NodeJS permiten un gran rendimiento en el lado del servidor, pudiendo atender a gran cantidad de usuarios con pocos recursos. La ejecución de código en Javascript es “no bloqueante”, lo que permite la ejecución de scripts de manera asíncrona, y estos no bloquean el flujo de la aplicación, liberando el proceso para atender otras solicitudes ante cualquier operación que requiera un tiempo de espera para completarse.

NodeJS ocupa un solo hilo de ejecución en las aplicaciones, por lo que el procesador y la necesidad de memoria del servidor no es muy exigente. En cambio esto hace que la escalabilidad de las aplicaciones deba proyectarse de otra manera en servidores con varios núcleos, creando varios procesos independientes que atienden a diversos tipos de operaciones, o creando réplicas de la aplicación ejecutándose en procesos diferentes.

Hay que mencionar para las personas con menos experiencia que Apache no es imprescindible para trabajar con NodeJS, pues el propio framework es capaz de hacer de servidor web con muy poco código, pero sí nos puede ofrecer diversas ventajas configurado como proxy de las aplicaciones NodeJS. Una de las más obvias es la posibilidad de usar, en el mismo servidor, aplicaciones NodeJS junto con aplicaciones más tradicionales en otros lenguajes, o para servir ficheros estáticos con mayor eficiencia que NodeJS. Pero también nos sirve para implementar un mayor grado de seguridad y diversas utilidades de la gestión del protocolo HTTP que ya Apache gestiona perfectamente.


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+