Post on 13-Jun-2015
description
transcript
DESARROLLO DE APLICACIONES ESCALABLES CON NODE.JS
Iván W. Uriarte Uriarte@pilmee
Mar
tes,
6 d
e N
ovie
mbr
e de
l 201
2
La innovación es lo que distingue a un líder de los demás
STEVE JOBS
Diseñador y Desarrollador Web
PHPProgramador
C/C++ Python Node.js etc
Software Libre
Fedora OS
Presidente de la “Asociación de Estudiantes de Tecnologías
Informáticas de Código Abierto” - EtiCA
$(“#PiLMeeGates”).val();
AGENDA
• Instalación de Node.js• NPM e instalación de
Paquetes• Creación de Proyectos
con Express.js• Diseño de Interface
Web “Chat” con Jade• Comunicación de datos
con socket.io1
• Node.js ¿… #wtf …?• Historia• Las Eras del Web• Express.js o.O?• Gestión de Proyectos• Motores de plantillas• Comunicación de datos• Compatibilidad• Puntos importantes
T E O R I A P R A C T I C A
Node.js ¿… #wtf …?
Node.js es una plataforma construida en tiempo de ejecución de Javascript de Chrome para permitirnos crear de manera fácil y rápida aplicaciones de red escalables.
Node.js utiliza un modelo event-driven, sin bloqueo de E/S, lo que hace que sea ligero y eficiente, ideal para almacenamiento de aplicaciones en tiempo real que se ejecutan a través de dispositivos distribuidos.
2
Node.js Historia
3
Fue creado
por Ryan Dahl
en el
año 200
9
su evolución está apadrinada por la
empresa Joyen
t
comunidad
creciente
Node.js
4
Propósito Similar
Propósito SimilarTwitedPython
Perl Object EnvironmentPerl
LibeventC
EventmachineRuby
ReactPHP
Node.js
5
Las eras del Web
HTML
LAMP
Javascript
Archivos estáticosExceso de archivosConfusión de Código
Linux Apache Mysql PHPPáginas dinámicasAcceso a BD, etc.
Para aplicaciones orientadas a eventosCambio de visión » “Flujos de Datos”No subestimar al cliente
Node.js
6
Express.js
Es el framework más conocido de node.js, es robusto, rápido, flexible, y simple …
Sin duda el éxito de express radica en lo sencillo que es usarlo, y además abarca un sin número de aspectos que muchos desconocen pero son necesarios.
De entre las tantas cosas que tiene este framework podemos destacar:
Session Handler
11 middleware poderosos
así como de terceros
cookieParser,
bodyParservhost router
Node.js
7
Gestión de Proyectos
La forma en que express.js nos permite gestionar nuestros proyectos web es realmente muy sencilla y práctica.
» npm install -g express
» express miproyectoweb
» node node/miproyectoweb/app.js
INSTALACIÓN
CREACIÓN DEL PROYECTO
COMPILACIÓN
PRUEBAhttp://localhost:3000/
Debemos instalar express como global (-g) si queremos poder usarlo como comando desde cualquier lugar.
Express, crea automáticamente la estructura de carpetas necesaria para empezar nuestro proyecto web.
Para poder visualizar el default de express solo debemos compilarlo, dirigirnos a nuestro navegador e ingresar el url indicada.
Node.js
8
Motores de Plantillas
• Jade es un motor de plantillas de alto rendimiento muy influenciado por Haml e implementado con JavaScript para Node.js
• Haml (abstracción HTML Markup Language) se basa en un principio fundamental: el marcado debe ser hermoso. No es sólo la belleza por la belleza, ya sea; Haml acelera y simplifica la creación de la plantilla web.
www.jade-lang.com
www.haml.info
Node.js
9
Jade-lang
Node.js
10
Comunicación de Datos
Socket.IO, tiene por objeto hacer que las aplicaciones se den en tiempo real en cada navegador sin importar el dispositivo del que se ingrese, quitando así las diferencias entre los diferentes mecanismos de transporte.
En Tiempo Real sin preocupaciones.
Construida 100% con Javascript.
www.socket.io
Node.js
11
Socket.io
S o c k e t . I O
Node.js
T i e m p o Re a l
Node.js
12
Compatibilidad
Node.js
13
Puntos Importantes
• NodeJS resuelve este problema cambiando la forma en que se realiza una conexión con el servidor. En lugar de generar un nuevo hilo de OS para cada conexión, cada conexión dispara una ejecución de evento dentro del proceso del motor de Node
• NodeJS también afirma que nunca se quedará en punto muerto, porque no se permiten bloqueos y porque no se bloquea directamente para llamadas de E/S. NodeJS afirma que un servidor que lo ejecute puede soportar decenas de miles de conexiones concurrentes
Node.js
13
Ventajas y Desventajas
Mismo Código Mínimo de Recursos
Costo menor Mayor escabilidad
Fácil de Leer Difícil de Dominar
Ventajas
Desventajas
Node.js
14
Archivos Externos
Archivo Detalle Enlace
Node.js http://nodejs.org/
Express http://expressjs.com/
Jade http://jade-lang.com/
Socket.IO http://socket.io/
NPM http://npmjs.org/
Bootstrap Twitter http://twitter.github.com/
EtiCA Gnu/Linux http://eticagnu.org/
Universidad Católica Santo Toribio de Mogrovejo – USAT
http://usat.edu.pe/
GRACIAS …
IVÁN WILFREDO URIARTE URIARTE
@ p i l m e e
f a c e b o o k . c o m / p i l m e e
p i l m e e @ e ti c a g n u . o r g
w w w. e ti c a g n u . o r g
Pilmee Gates