Durante esta semana vamos a detenernos en Node.js. Primero vamos a tratar de entenderlo: node.js ¿qué es? Posteriormente iremos viendo como instalarlo, cómo trabajar con este framework, y qué posibilidades nos da a la hora de probar aplicaciones, y a la hora de desarrollar aplicaciones.
Node.js (node.js en la wikipedia) es un entorno de programación basado en el lenguaje de programación ECMAScript (para nosotros esto será sinónimo de Javascript, aunque no sea del todo correcto), basado en el motor V8 de Google. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web. Fue creado por Ryan Dahl en 2009.
Al menos, eso es lo que dice la wikipedia sobre node.js. Dicho de otra manera, node.js es un entorno de programación (y de ejecución), basado en javascript, más concretamente en V8, la máquina virtual de Javascript usada en Google Chrome. Además, node.js viene con muchos módulos útiles, de manera que no es necesario escribir todo de cero. Node.js es por tanto un entorno de ejecución, y una librería. Más cosas importantes que debemos tener en cuenta de la definición de la wikipedia: Fue creado para ser útil en la creación de programas altamente escalables, y es por eso que es tan popular. Es decir, node.js está diseñado para situaciones en las que se esté esperando una gran cantidad de tráfico y donde la lógica del lado del servidor y el procesamiento requeridos, no sean necesariamente grandes antes de responder al cliente.
Otra manera de decirlo es decir que Node.js es una interfaz para el entorno de ejecución de Javascript V8, el mismo que se ejecuta dentro de google chrome. Lo que hace node es darnos la posibilidad de usar este motor en servidores web.
Popular, muy popular
Para proyectos completos, o como una ayuda para el desarrollo de herramientas dentro de proyectos más grandes. Por ejemplo, el equipo de desarrollo de Idealista, ha utilizado node en dos casos interesantes que utilizan en producción y sobre los que podéis leer más en su blog:
- Cómo desarrollar un microservicio para acortar urls en 4 días
- Sirviendo thumbnails adaptados al dispositivo en tiempo real
Importancia de node.js para testers
¿Y por qué un artículo de node.js en testeandosoftware.com? Por varias razones, pero una de las más importantes es el gran número de frameworks y herramientas para pruebas realizados en torno a node.js.
Uno de nuestros favoritos, y sobre el que vamos a hablar mucho próximamente es Nightwatch.js, que permite realizar pruebas automáticas de navegación web de manera sencilla, utilizando node y Selenium server.
Protractor es un entorno para pruebas que ejecuta las pruebas también en un navegador, como un usuario real, y que también utiliza Selenium server.
Karma es una herramienta cuyo propósito es facilitar el poder desarrollar usando TDD (test driven development), de manera sencilla y rápida. No es un entorno para pruebas, sino que es una herramienta para usar conjuntamente con entornos de prueba como Jasmine o Mocha.
Vowsjs, un framework asíncrono de testing para node.js muy versátil, y del que también iremos hablando en próximos artículos.
Como veis, hay muchas y muy interesantes herramientas que están relacionadas de una u otra forma con Node.js, por lo que es necesario que cómo testers conozcamos esta herramienta lo mejor posible. Es por esto que en los próximos días iremos hablando de su instalación y ejemplos de utilización.
1 comentario en «Node.js ¿Qué es?»