Prólogo a la guía Express.js:el libro completo sobre Expresss.js

Estimado lector, tiene un libro que lo abrirá a la comprensión y el uso fluido del marco Express.js, estándar de facto en la programación de aplicaciones web en Node.js. Y recomendaría especialmente este libro porque fue escrito por un ingeniero en ejercicio, uno que tiene un conocimiento integral sobre la pila completa de desarrollo de aplicaciones web y Express.js en particular.

Azat y yo trabajamos en la misma base de código Node.js/Express.js en Storify, la herramienta de selección de medios sociales que usan el Washington Post, CNN, BBC, la Casa Blanca y otros cuerpos de noticias, que fue adquirida recientemente por LiveFyre. Justo antes del lanzamiento de la Guía Express.js, me pidió que escribiera el prólogo, porque sonará objetivo, sincero e imparcial viniendo del creador de otro Marco Node.js — CompoundJS.

Sin embargo, nadie está leyendo prólogos. Entonces, en lugar de un prólogo, compartiré mi historia. En realidad, nunca pensé que valiera la pena compartirlo y definitivamente no tiene nada de emocionante. Pero desde el otro punto de vista (miles de jóvenes programadores que viven vidas ordinarias similares) podría ser inspirador:es una historia común, pero una especie de éxito.

Mi camino hacia el desarrollo web comenzó cuando era estudiante y me uní a un equipo como programador PHP junior. Trabajé aquí durante unos 5 años y la lección principal que aprendí fue:la educación no es nada comparada con la experiencia laboral real. La siguiente página de mi vida profesional fue trabajar en outsourcing (PHP y Ruby on Rails). Y luego encontré Node.js.

Era algo que siempre quise:procesos que no tengan que esperar operaciones DB/IO que mantengan todos los recursos, pero que hagan algo útil en su lugar. Esta es la simple razón por la que comencé a usarlo; es más eficiente en comparación con los entornos de programación síncrona. Por "eficiente" no me refiero a la velocidad de procesamiento, sino a una mayor flexibilidad en el estilo de programación.

Como buen ejemplo de esta flexibilidad, puedo compartir algunas soluciones que programé recientemente para un adaptador Redis para el ORM Jugglingdb. Problema:durante los picos de uso del sitio web, ejecutamos muchas consultas de base de datos para servir páginas, y la mayoría de las consultas son las mismas. La solución obvia es almacenar en caché los resultados de las consultas, pero esta solución requiere codificación adicional y algo de lógica para la invalidación de caché. Hemos venido con una mejor solución:consultas de caché y no resultados. Cuando llega una consulta, no la ejecutamos inmediatamente; en cambio, esperamos un tiempo, recopilamos consultas idénticas, luego ejecutamos la consulta una vez y ejecutamos varias devoluciones de llamada para atender a todos los clientes. Esta solución es simple y no requiere lógica adicional. Como resultado, tenemos un uso de db plano incluso durante los picos. ¡Esta solución es natural en Node.js, y es por eso que Node.js es genial!

La vida después de descubrir Node.js fue genial, llena de desafíos y trabajo interesantes, pero una cosa era molesta:cada vez que empiezo un nuevo proyecto, tengo que hacer casi el mismo trabajo para organizar el código. Para mí, como desarrollador de Rails, fue genial poder crear rápidamente aplicaciones MVC bien estructuradas, generar controladores/vistas de scaffolding y otras cosas. Pero este tipo de herramienta faltaba en Node.js y es por eso que pasé mis vacaciones de Navidad escribiéndola; el proyecto se llamó express-on-railway al principio, luego RailwayJS, luego CompoundJS.

El objetivo principal de este proyecto era brindar estructura a una aplicación Express.js, agregar la capacidad de extender aplicaciones de manera estándar y generar código de aplicación. Entonces, no era un marco nuevo, sino solo Express.js con una estructura MVC decente, lo cual es bueno para los desarrolladores que no necesitan aprender nada más que Express.js para poder entender lo que sucede en la aplicación CompoundJS. Y fue una especie de aprovechamiento de la experiencia de Express.js y Rails:la idea era obtener las mejores ideas de Rails y llevarlas a la plataforma de nodos, y se seleccionó Express.js como base porque es el marco más popular para Node.js. y tiene una comunidad relativamente grande, por lo que no estaré solo con mi "nuevo marco". Fue el comienzo de mis años de código abierto, lo que cambió por completo mi actitud hacia la programación y todos los asuntos, pero esta es otra historia.

Y qué puedo decir para concluir:el desarrollo web en Node.js comenzó con Express.js. Es un marco minimalista y robusto que le brinda todo lo que necesita para crear aplicaciones web decentes. Incluso si decide pasar a algunos marcos más avanzados en algún momento, el conocimiento de Express.js es una habilidad básica que debe aprender. Además, este libro contiene todo lo que necesita saber para comenzar a usar Express.js y explica claramente todos los conceptos y respuestas a la mayoría de las preguntas que suelen hacer los recién llegados. Por estas razones, ¡este libro es una lectura obligada!

Anatoli Chakkaev,

Creador de CompoundJS y JugglingDB