domingo, 24 de febrero de 2008

Hoy, Ruby on Rails

Paso a comentarles un poco como descubri este lenguaje.

Resulta que durante meses y meses, escuche a gente hablar de el, post en blogs, remeras en nerds, todas alabando las virtudes del mismo.

Hasta que un dia dije "¿Por que no?".

Asi entre a la pagina oficial de RoR. Alli se encuentran bastante tutoriales y howtos como para comenzar.

Como estoy corriendo, lamentablemente, sobre Windows, encontre que el server para desarrollar en esa plataforma se llama InstantRails. Un paquete muy util, similar al EasyPHP, ya que de una pasada, instala y configura el server (Apache), la base de datos (MySQL) y varias cosas mas, ademas de una muy buena interfaz para administracion de proyectos.

Una vez instalado, empece a averiguar cual era el mejor libro para aprender. A mi, en particular, me gustan mas los libros que dan un ejemplo completo para empezar, asi uno se acostumbra a la metodologia, y luego ir en profundidad a otros temas.

EL libro por excelencia es "Agile Web Development with Rails". Muy completo, con buenos ejemplos, bien explicado desde 0 como era mi caso, pero con cosas interantes para ir investigando luego.

El unico inconveniente es que esta escrito para la version 1.2.6 del framework, el cual ya va por la version 2.0. Esto puede llegar a trabarte en algunos momentos, pero con ayuda del gran Google, se puede salir adelante (en mi caso, haciendo un downgrade de rails).

RoR es un framework dedicado, en su escencia, a desarrollo Web. Utiliza como arquitectura base, el modelo tri-capa MVC (Model-View-Controller). Esto es un gran alivio contra lenguajes como PHP o ASP.NET, ya que esta arquitectura viene embebida en el paquete, lo que hace que los links, por ejemplo, entre un metodo del controller y la vista del mismo, mientras el archivo se llame igual, sean automaticos.

La mayoria de las cosas, previas a codificar, se realizan con comandos simples, que ayudan mucho al momento de empezar.

Simplemente con tipar

rails [nombre de mi aplicacion]

se generan la jerarquia de carpetas y todas las configuraciones de base.

Ademas de las clasicas carpetas para MVC, se agregan las carpetas:
  • Log, donde se guardan los mismos.
  • JS, alli se encuentra todo el codigo JavaScript, aunque veran en el libro que este no se utiliza como estamos acostumbrados, sino mediante macros muy utiles.
  • Public, donde se guardan todos los archivos (imagenes, etc.) que se utilizan en la pagina
Y varias mas, que se detallan en la segunda parte del libro.

Esto genera una mayor comodidad al momento de codificar, ya que sabemos donde se encuentra cada cosa, y es mas facil para paralelizar el trabajo.

Otro punto muy destacable es la operacion con base de datos. En la configuracion de la misma, uno solamente tiene que aclarar el tipo de base (MySQL, Oracle, etc). Este cambio no modifica para nada el codigo existente, ya que el acceso a las tablas es mediante una capa que es independiente a la base usada.

De esto se desprende la relacion DB-Object, ya que basta un [Objeto].Save para que los cambios se vuelquen en la base.

Podria estar toda la noche (y ganas no me faltan) de hablar de RoR, pero lo mejor es que cada uno pruebe y experimente. Si tienen alguna duda, no vacilen en consultarme. Desde mi posicion de semi-junior, voy a tratar de ayudar.

Ah, antes de terminar, una parte muy importante. Si bien esto se puede programar en el notepad que mas nos guste, siempre es bueno tener una IDE que nos haga el trabajo un poco mas facil. Despues de probar con varias, me decidi por Aptana Studio, un derivado de Eclipse (la mejor IDE lejos), que esta especializada para desarrollo web, tanto con PHP como con RoR y varios plugins mas que se puede agregar.

A continuacion, les dejo varios links utiles:
Para terminar, les dejo un par de videos. Parodiando a la publicidad "I'm a Mac", muestra graficamente las diferencias entre RoR y otros lenguajes conocidos.









Ahora si, esta fue una noche bastante productiva (sacando de lado lo academico :p), espero que les sirva y tener apoyo para escribir sobre otra cosa. Igualmente, me gustaria terminar esta review, agregando un par mas de datos, asi como tambien, contras de Rails.

Saludos Gente!

Blue!

2 comentarios:

VorteX dijo...

Me los vi todos SOLO para ver si se la agarraban con Python... menos mal que no :)

Facundo

Unknown dijo...

Mati, PHP se te esta poniendo celoso...