martes, 29 de julio de 2008

Instalación de Ruby on Rails

Para poder desarrollar con Ruby on Rails idealmente debemos instalar seis paquetes, en el orden que se muestra abajo. El ambiente elegido en este caso es Windows. La instalación en Linux deberia ser similar. Sigan los hipervínculos para llegar a las páginas donde se puede bajar cada software. Explicaremos los pasos que hay que seguir para llevar a cabo la instalación de cada uno, en el caso de que no se explique nada es porque la instalación debería considerarse trivial.

  • El interprete de Ruby
  • El framework Rails (ver instrucciones más adelante)
  • El Java Runtime Environment (Necesario para correr RadRails)
  • Aptana Studio, una IDE a la cual le instalaremos el plugin RadRails, para desarrollar en RoR
  • MySQL, la base de datos sobre la cual trabajaremos. Bajen el MySQL community server. Viene en dos sabores, Windows Essentials y una versión completa. Yo uso la completa, ustedes si prefieren bajen la otra.
  • MySQL GUI Tools, una serie de herramientas para poder realizar tareas con MySQL de forma visual.

Ruby

Después de instalar el interprete de Ruby, es recomendable probar que funciona para verificar que esta todo en orden. Para esto, abran una consola, escriban ‘irb’ y presionen enter. Si se abre el prompt de irb (Interactive Ruby) es que esta todo en orden.

Rails

Para instalar el framework Rails, asegúrense de tener conexión a Internet, abran una consola y escriban ‘gem install rails –r –y’. ‘gem’ es un administrador de paquetes de Ruby. Si quieren más información, solo escriban ‘gem’ en la linea de comando. Básicamente, con ‘install’ le estamos indicando que queremos instalar un paquete, ‘rails’ es el nombre del paquete, -r indica que lo vamos a hacer de forma remota, -y indica que además queremos instalar todas las dependencias.

Aptana Studio

Después de instalar Aptana Studio, debemos instalar el plugin RadRails. Al abrir Aptana deberían tener en vista la start page, que en la columna del centro muestra una lista de plugins para instalar. Ahí hagan clic en ‘RadRails’.

Start Page de Aptana Studio

Después de eso verán una ventana como la de abajo. Seleccionen ‘Aptana RadRails’ y den ‘Next’. El resto de la instalación debería ser automática.

Después de instalar RadRails, hay que setear un par de valores en la configuración para que funcionen. Ir a window->preferences.

  • Elegir Ruby->Installed Interpreters. Si no esta agregado el interprete de Ruby que instalaron en los pasos anteriores, sigan el paso siguiente. Si lo esta, saltéenlo.
  • En Installed Interpreters, presionen ‘add’. En ‘Interpreter name’ pongan el nombre que quieran y en location ingresen el path donde esta el exe de Ruby, típicamente, en ‘(DIRECTORIO_RUBY)\bin\ruby.exe’

Para probar la instalación, vamos a crear un nuevo proyecto. Presionen ‘file->new->project’. Elijan un proyecto de Rails. Elijan cualquier nombre para el proyecto, asegurense de tener seleccionados los checkboxes ‘Generate rails application skeleton’, ‘Generate a WEBrick server’ y ‘Automatically start server alter project is created’.

Configuración del proyecto a crear

Después de dar ok, hagan clic en la cajita para expandir el proyecto nuevo. Si todo anduvo bien, les va a crear la estructura y van a ver la pantalla de bienvenida del proyecto que acaban de crear. Si eso no pasó, probablemente tengan hayan hecho algo mal en los pasos de configuración.

Pantalla de bienvenida del proyecto

MySQL y MySQL GUI Tools

MySQL debería ser instalado correctamente seleccionando las opciones por defecto. Cuando termine la instalación indiquen que quieren configurar el servidor. Cuando lo estén configurando también deberían elegir las opciones por defecto. Cuando les pregunte si lo quieren instalar como servicio de Windows indiquen que si. Si no quieren tener que iniciarlo manualmente cada vez que rebooteen, pongan que lo quieren lanzar automáticamente.

MySQL GUI Tools también debería ser instalado correctamente si eligen las opciones por defecto.

Para testear la instalación de MySQL, después de instalar las GUI Tools, abran el MySQL Administrator. Pongan el password de root que eligieron durante la instalación y presionen ‘ok’. Deberían ver una pantalla como la siguiente.

lunes, 21 de julio de 2008

¿Qué es Ruby on Rails?

Ruby on Rails (RoR), es un framework para crear aplicaciones web, que busca simplicidad y agilidad, permitiendo de esta forma crear aplicaciones con mucho menos código, tiempo y esfuerzo que otros frameworks mientras que reduce el trabajo de configuración al mínimo.

Cualquiera que haya participado en un proyecto de desarrollo grande esta enterado de la cantidad de papeleo y burocracia en la cual uno se va metiendo de a poco a medida que avanza en el ciclo de desarrollo y va generando más y más documentos. Frecuentemente, esta burocracia termina generando software extremadamente complejo, difícil de mantener y vulnerable a los cambios. Rígido.

El desarrollo ágil busca tener un proceso de desarrollo basado en “individuos e interacciones por encima de procesos y herramientas” y prefiere tener énfasis en “responder al cambio antes que obedecer a un plan”. El tema es lo suficientemente interesante como para escribir un articulo entero de él, pero básicamente, el desarrollo ágil busca adaptarse fácil a los cambios eliminando todas las cosas que te enlentecerían en ese sentido si uno siguiera un esquema clásico. Y no perder de vista que lo que importa son los resultados, por más que uno siga un proceso, si el proceso produce un fracaso, esta mal.

La mayoría de los frameworks para aplicaciones web no se adaptan especialmente al desarrollo ágil. Es aquí donde Ruby on Rails quiere hacer una diferencia.

Sobre Ruby

Ruby es un lenguaje de programación con tipos dinámicos, interpretado, reflectivo, orientado a objetos.

  • Que tenga tipos dinámicos quiere decir que el tipo de un objeto se determina dinámicamente cada vez que se utiliza. Por lo tanto, no tenemos que declararlo previamente. Por lo tanto en Ruby, las siguientes líneas de código son validas:

resultado = 1 + 1

resultado = “dos”

  • Que sea interpretado quiere decir que la implementación del código se realiza a través de un interprete, un programa que va ejecutando línea por línea del código, en lugar de ser compilado. Como no hay que compilar, el ciclo de modificar código, ejecutarlo y testearlo se hace mucho más rápido. Que sea interpretado facilita que pueda tener tipos dinámicos, reflection, que sea multiplataforma, y que sea más fácil de debuggear, entre otras ventajas. El código compilado se ejecuta mucho más rápido, por contraste.
  • Que sea reflectivo quiere decir que soporta reflection. Esta es una propiedad que permite que el programa se modifique a si mismo en tiempo de ejecución. Pueden leer mas y ver ejemplos acá
  • Que sea orientado a objetos quiere decir que sigue el paradigma de la Programación Orientada a Objetos. Explicar lo que es escapa al alcance de este articulo, y si uno no sabe lo que es, antes de seguir con RoR se debería leer un poco al respecto.

Sobre Rails

Rails es un agregado a Ruby. Además del framework, trae un montón de librerías y utilidades para generar código. En teoría, es tan ágil y liviano que permite desarrollar aplicaciones web diez veces más rápido que otros frameworks, como J2EE, sin sacrificar calidad.

Esto es posible porque Rails esta construido sobre dos principios, ‘convención antes que configuración’ (convention over configuration) y ‘no te repitas’ (don’t repeat yourself).

‘Convención antes que configuración’ es un paradigma de diseño que busca favorecer que los desarrolladores tomen menos decisiones y de esa forma, que la tarea de desarrollar sea más simple. En este caso, se trata de aplicar una convención de nombramiento de objetos y campos de tablas de bases de datos para que no haya que especificar como se hace.

Es decir, si tenemos una clase ‘Cliente’ es razonable que su tabla se llama ‘Clientes’. Al aprovechar esa convención nos ahorramos tener que escribir archivos de configuración que especifiquen como se hace un mapeo clases-tablas.

Tradicionalmente, los frameworks precisan muchos archivos de configuración, para mapear urls con clases y clases con tablas. Esa es una de las ventajas que tiene Rails.

Esto no nos restringe a romper la convención si queremos y especificar mapeos distintos a los que se establecen por defecto, pero perdemos parte de los beneficios.

‘No te repitas’ es un principio que intenta reducir la duplicación. La idea es que la información duplicada es difícil de mantener, da lugar a inconsistencias y por lo tanto, dificulta el cambio. Nos hace menos ágiles. Si este principio se aplica exitosamente, los cambios solo se hacen en un único lugar y todo un sistema mantiene una coherencia.

En RoR, esto se refleja de forma tal que no hay que definir los miembros de una clase que manipula datos, ya que los lee directo de las tablas correspondientes.

Además, Rails esta basado fuertemente en el patrón MVC (Model View Controller). En este patrón se busca aislar la lógica de negocios de la interfaz de usuario, donde el Model representa los datos de la aplicación y las reglas de negocios, el View es la interfaz que se usa para interactuar con los datos y el Controller se encarga de realizar la comunicación entre Model y View. Esto causa que podamos cambiar fácilmente la apariencia visual o la lógica de negocios sin que los cambios de una tengan un impacto en la otra.

  © Blogger template 'Morning Drink' by Ourblogtemplates.com 2008

Back to TOP