Material del Curso de Node.js en Rosario

Gracias a la organización del Microsoft User Group de Argentina, y al apoyo en el lugar del bueno de @mcomparetto, pude dar un curso de un día en Rosario, Santa Fé, acá en Argentina. Quisiera enumerar rápidamente el material que usamos.

En primer lugar, la presentación la pueden ver en https://skydrive.live.com/redir?resid=9F903F3D6DB0C176!5904

Nos descargamos Node.js desde http://nodejs.org/

No lo usamos mucho, pero si quieren pueden usar el Git que se baja desde https://github.com/ajlopez/NodeSamples

Los ejemplos que usamos al principio estan en mi GitHub:

https://github.com/ajlopez/NodeSamples

Vimos de ahí los del subdirectorio Simple, desde un Hello World, un servidor Web, hasta un simple chat con Socket.io, como ir viendo en qué es bueno Node.js.

Discutimos cómo hacer un módulo, cómo usar algo de TDD. No fue “full TDD”, pero el ejemplo quedó en https://github.com/ajlopez/NodeSamples/tree/master/TDD.

Fue muy importante el ver el uso de require. Ahí apareció el manejador de paquetes NPM. Vimos cómo es un archivo package.json, cómo sirve para instalar las dependencias, dónde se buscan los módulos cuando se hace require, cómo se emplea “npm test”, cómo se puede publicar un módulo.

Para ver cómo se puede hacer un web server y sitio “a mano”, de los ejemplos de arriba vimos el directorio MathWizard, donde vimos cómo se puede implementar un cálculo en forma asincrónica. El tema de asincronía con callbacks fue algo que traté de repetir durante todo el curso, para que quede claro cuál es el precio a pagar para programar en Node.js.

Luego de ver cómo es armar un sitio a mano, discutimos el middleware de Connect, y luego Express. Ver:

http://expressjs.com/

Mostré cómo armar nuestro primer sitio web Express desde la línea de comando (ver la presentación). Quedó en https://github.com/ajlopez/NodeSamples/tree/master/Express/MyApp

Para pasar a un sitio con base de datos, instalamos MongoDb, ver http://www.mongodb.org/. Vimos el ejemplo de https://github.com/ajlopez/NodeSamples/tree/master/Express/Blog basado en el ejemplo original de http://howtonode.org/express-mongodb

Levantamos entonces el ejemplo https://github.com/ccoenraets/nodecellar ver los posts:

http://coenraets.org/blog/2012/10/nodecellar-sample-application-with-backbone-js-twitter-bootstrap-node-js-express-and-mongodb/
http://coenraets.org/blog/2012/10/real-time-web-analytics-with-node-js-and-socket-io/
http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/

Pasamos a ver Socket.io http://socket.io/ Usamos los ejemplos

https://github.com/ajlopez/NodeSamples/tree/master/SocketIO
https://github.com/ajlopez/NodeSamples/tree/master/SocketIO/Canvas
https://github.com/ajlopez/NodeSamples/tree/master/SocketIO/TicTacToe

y los ejemplos distribuidos de algoritmos genéticos de:

https://github.com/ajlopez/SimpleGA
https://github.com/ajlopez/SimpleGA/tree/master/samples

Finalmente, volvimos al nodecellar y lo modificamos para poder tener un “dashboard” de visitas en tiempo real, usando Socket.IO.

No se puede ver todo Node.js en un día, pero espero que las primeras horas hayan servido para tener una idea de cuáles son los primeros pasos, y que la segunda parte, a la tarde, haya servido entonces para tener un panorama rápido de cosas que se pueden hacer en tiempo real, que podrían ser complejas de implementar en otras tecnologías.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10747, 12110, 14005, 15550. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>