Con el auge de AngularJS, una nueva corriente está surgiendo en el desarrollo en JavaScript de principio a fin. El llamado stack MEAN. Con desarrollo end-to-end nos referimos a utilizar JS en todas las partes que componen una aplicación web actual: Frontend, Backend y Base de Datos.

mean small vertical kaasp5

El acrónimo MEAN viene de (M)ongo + (E)xpress + (A)ngular + (N)ode

MongoDB

Icon MongoDB by xkneo

Mongo es una base de datos no relacional (NoSQL) de código abierto que guarda los datos en documentos tipo JSON (JavaScript Object Notation) pero en forma binaria (BSON) para hacer la integración de una manera más rápida. Se pueden ejecutar operaciones en JavaScript en su consola en lugar de consultas SQL. Además tiene una gran integración con Node.js con los driver propio y con Mongoose. Debido a su flexibilidad es muy escalable y ayuda al desarrollo ágil de proyectos web.

 

ExpressJS

express

Express es un framework por encima de Node.js que permite crear servidores web y recibir peticiones HTTP de una manera sencilla, lo que permite también crear APIs REST de forma rápida.

 

AngularJS

square 300x3001 scxhwx 1

Angular es un framework JS para la parte cliente o Frontend de una aplicación web, que respeta el paradigma MVC y permite crear Single-Page Applications (Aplicaciones web que no necesitan recargar la página), de manera más o menos sencilla. Es un proyecto mantenido por Google y que actualmente está muy en auge.

 

Node.js

nodejs 150x1505 ns3hvi

Node es un entorno de programación en JavaScript para el Backend basado en el motor V8 de JavaScript del navegador Google Chrome y orientado a eventos, no bloqueante, lo que lo hace muy rápido a la hora de crear servidores web y emplear tiempo real. Fue creado en 2009 y aunque aún es joven, las últimas versiones lo hacen más robusto además de la gran comunidad de desarrolladores que posee. No solo se utiliza en servidor, se ha extendido tanto que se emplea en Stylus, un preproccesador CSS, en Grunt un gestor de tareas basado en JavaScript y en varias cosas más como tests, etc…

Una de las principales ventajas de MEAN es que emplea el mismo lenguaje de programación en todas las partes de la aplicación lo que permite que una persona pueda manejarse en todos los ámbitos de una aplicación web moderna aunque se especialice en uno de ellos. De esta manera se colabora más en los proyectos y el desarrollo es más continuo.

Esto, añadido a las pruebas automatizadas y los test unitarios, los repositorios git como GitHub o Bitbucket, los servidores de integración continua y las PaaS como Heroku o Nodejitsu hacen que el desarrollo web moderno sea más divertido y ágil.