sábado, 8 de junio de 2013

Introducción teórica a Ruby on Rails (RoR)


Ruby on Rails (RoR o simplemente Rails) es un framework para desarrollar aplicaciones web basado en el lenguaje de programación Ruby. Rails esta diseñado para facilitar la programación de aplicaciones web haciendo suposiciones acerca de lo que un programador necesita para empezar a programar. Te permite escribir menos código y llegar mas lejos que muchos otros lenguajes y/o frameworks. Incluso, hasta algunos programadores expertos en Rails dicen que hace el desarrollo de aplicaciones web mas divertida.

Rails es un software obstinado. Rails asume que hay una "mejor manera" de hacer las cosas, y esta diseñado para hacerlo de esa manera - y en algunos casos, desalentarte a usar alternativas. Si uno aprende "de la forma Rails" (The Rails Way) es probable que descubras un gran aumento de la productividad. Si persistes en llevar las viejas costumbres de otros lenguajes de programación para el desarrollo de aplicaciones Rails, o tratas de utilizar patrones que has aprendido en otros lugares, es probable que tengas una experiencia menos feliz al usar Rails.

La filosofía de Rails incluye muchos principios, aqui cito algunos:

  • DRY (Don't repeat yourself - No te repitas) - Este principio sugiere que escribir el mismo código una y otra vez no es bueno.
  • Convention over configuration (Convención sobre configuración) - Significa que Rails asume cosas acerca de lo que quieres hacer y como lo vas a hacer, en vez de requerir que especifiques cada minúsculo detalle de lo que quieres o vas a hacer en una infinidad de archivos de configuración.
  • REST es el mejor patrón para las aplicaciones web - organizar tu aplicación en torno a recursos y verbos HTTP es la manera mas rápida de desarrollar.

1. La arquitectura MVC

Rails se encuentra basado en el patrón MVC - Model, View, Controller, (Modelo, Vista y Controlador), usualmente llamado simplemente MVC. Algunos beneficios de usar MVC incluyen:
  • Aislamiento de la lógica del negocio de la interfaz de usuario
  • Facilita mantener el código bajo el principio de DRY
  • Hace mas claro donde pertenece cada bloque de código para facilitar el mantenimiento

1.1 Modelo

Un modelo representa la información (datos) de la aplicación y las reglas para manipular estos datos. En el caso de Rails, los modelos son usados generalmente para manejar la interacción con su correspondiente tabla en la base de datos. En la mayoría de los casos, cada table en la base de datos corresponde a un modelo en la aplicación. La mayor parte de la lógica de negocio de la aplicación se concentra en los modelos.

1.2 Vistas

Las vistas representan la interfaz de usuario de la aplicación. En Rails, las vistas usualmente son archivos HTML con código Ruby embebido que realiza tareas asociadas solamente a la presentación de datos. Las vistas tienen a cargo la tarea de proveer de datos al navegador web u otra herramienta que se utilice para hacer peticiones a la aplicación.

1.3 Controlador

Los controladores son el pegamento que une los modelos y las vistas. En Rails, los controladores son responsables de procesar las peticiones de los navegadores web, interrogar a los modelos para obtener información y pasar esta información a las vistas para su presentación.

2. El Modelo REST

REST (Representational State of Transfer - Estado representativo de la transferencia) es la base de la arquitectura REST. En Rails, REST se usa en dos principios:
  • Usar identificadores de recursos como URLs para representar recursos
  • Transferir representaciones de estado del recurso entre componentes del sistema
Por ejemplo, si tenemos la siguiente petición HTTP:

DELETE /photos/17

se entiende que se refiere a un recurso llamado photos (fotos) con el identificador (ID) 17, e indica que la acción que se quiere realizar al recurso photos es un un DELETE - (ELIMINAR). 

3. Links de Interés

Si quieres saber mas sobre Rails, o la teoría que se ha tocado en esta entrada, aquí te dejo algunos links:


No hay comentarios:

Publicar un comentario