Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

21
DESARROLLO DE APLICACIONES ESCALABLES CON NODE.JS Iván W. Uriarte Uriarte @pilmee artes, 6 de Noviembre del 2012

description

Diapositivas de la conferencia sobre Node.js, express, socket.io y jade-lang en la UNPRG Lambayeque Perú.

Transcript of Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

Page 1: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 2: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

La innovación es lo que distingue a un líder de los demás

STEVE JOBS

Page 3: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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();

Page 4: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 5: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Page 6: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 7: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 8: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

Node.js

4

Propósito Similar

Propósito SimilarTwitedPython

Perl Object EnvironmentPerl

LibeventC

EventmachineRuby

ReactPHP

Page 9: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 10: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 11: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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.

Page 12: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 13: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

Node.js

9

Jade-lang

Page 14: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 15: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

Node.js

11

Socket.io

S o c k e t . I O

Node.js

T i e m p o Re a l

Page 16: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

Node.js

12

Compatibilidad

Page 17: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 18: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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

Page 19: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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/

Page 20: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

GRACIAS …

Page 21: Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012

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