Apuntes Rails
Publicado el Viernes, 6 de abril de 2012He estado estudiando bastante de las Rails Guides últimamente. Mi kit de estudio sigue siendo tan primitivo como cuando iba al liceo: un cuaderno de papel y una lapicera, además del material de estudio (en este caso Internet).
Estoy abierto a sugerencias de métodos más modernos. Debería probar sacar apuntes en un editor de texto directamente en la computadora, pero evitando la tentación de copiar y pegar texto...
El tema es que pienso compartir mis apuntes por acá. La idea es que al tener que pasar esos apuntes a un post prolijo en el blog, no solo vuelvo a estudiar sino que quede explicado de la mejor manera posible. Así, no solo comparto el conocimiento, sino que lo afirmo en mi cabeza. También queda abierta la discusión sobre los temas estudiados en los comentarios. Por último, es un registro para cuando quiera repasar algún concepto ya adquirido.
Ya había leído varias partes de la guía Rails hace un buen tiempo, pero siempre a modo de "hobby" (lo que venía siendo Ruby para mí hasta que me puse en serio con eso). Así que arranqué de cero con el objetivo de leer toda la guía (requisito también en mi trabajo).
La guía asume un poco de conocimiento de Ruby, y algunos requisitos de software en nuestra computadora que no voy a comentar por acá. Tampoco voy a seguir un orden exacto, hay cosas que se pueden ir leyendo independientemente de otras. Pero cualquier duda la pueden dejar en los comentarios que con gusto intentaré contestar.
Introducción a Rails
La guía contempla la versión 3.2.3 de Rails. Para dejar una "definición" de lo que es Rails, tiro un apunte:
Rails es un framework de desarrollo de aplicaciones web.
En teoría sigue el patrón de diseño MVC, pero he oído fundamentos para creer que no es tan así (otro tema...). En fin, sigamos asumiendo que es así. El patrón MVC consta básicamente de:
Modelo - La representación de la información, los datos. Define las reglas para manipular la información (lógica de negocios).
Vista - Anoté "UI", o interfaz de usuario. Es cómo vamos a mostrar la información
Controladores - El pegamento entre los modelos y las vistas. Procesa los requests entrantes en la aplicación. Interroga a los modelos para obtener información y le pasa datos a la vista.
Es un patrón de uso bastante común en otras tecnologías y lenguajes, así que asumo que la mayoría de las personas que hayan trabajado en proyectos web lo conocen. Y si no es así, tienen un concepto para ir conociendo 🙂
Componentes de Rails
Rails tiene muchos componentes internos encargados de cada aspecto de la aplicación web. Es bueno tener una idea de qué hace cada uno, aunque en su momento la guía profundiza según tema.
- Action Pack - Gema que contiene:
- Action Controller - Procesa los requests, extrae los parámetros, despacha a acciones. Servicios que provee: manejo de sesión, renderización de plantillas, gestión de redireccionamiento.
- Action View - Puede crear HTML y XML por defecto, gestiona renderización de plantillas, AJAX incluido.
- Action Dispatch - Maneja el ruteo de los pedidos web.
- Action Mailer - Servicios de correo electrónico.
- Active Model - Interfaz entre Action Pack y el ORM.
- Active Record - Base para los modelos en Rails. Provee:
- Independencia de la base de datos.
- Funcionalidad CRUD.
- Capacidades avanzadas para buscar.
- Relaciones entre modelos.
- Active Resource - Conexión entre los objetos de negocio y servicios web que siguen los principios REST. Mapea recursos basados en web a objetos locales con semántica CRUD.
- Active Support - Clases utilitarias y extensiones a bibliotecas estándard Ruby.
- Railties - Código central de Rails que construye nuevas aplicaciones y junta todos los frameworks y plugins.
REST
Para comprender Rails (y básicamente tener una idea de cómo se desarrolla para web actualmente), hay que tener un concepto de REST - Representational State Transfer (Transferencia de Estado Representacional). Es una forma de construir software, y pueden leer más en Wikipedia.
Pero a modo de resumen, Rails nos dice esto:
- Usar identificadores de recursos como URL para representar recursos.
- Transferir representaciones del estado de ese recurso entre componentes de sistema.
Por ejemplo el siguiente request HTTP:
DELETE /books/14
Es un recurso de libro con el id 14, y la acción borrar.
Aplicación Rails
No voy a pasar por el proceso de crear una primera aplicación. Lo mejor para esto es abrir la Guía de Rails y empezar a crear una aplicación por cuenta propia siguiendo los pasos y aplicando los conocimientos.
Cierro el post con un poco de música. Un tema de Rancid del discazo "And Out Come The Wolves":
Rancid - RUBY Soho
En próximos posts seguiré digiriendo y publicando apuntes de otras partes de la guía Rails.
4 comentarios en este post
Feed de comentarios-
Apuntes Rails: Migraciones | Picando Código |
21 agosto. 2012 - 09:01
[…] Migraciones 0 ago 212012 RubyHace un tiempo publiqué un par de posts sobre Rails denominados Apuntes Rails. Mientras iba estudiando Ruby on Rails, procesaba las anotaciones y las armaba en forma de post. La […]
Dan 6 abril. 2012 - 12:38
Sobre el tema de los componentes de Rails, esos son los básicos, pero siempre se pueden intercambiar. Al fin y al cabo, son gemas nomás. 😀
Sobre la música, también está el lugar común de todo conocedor de Ruby: http://www.youtube.com/watch?v=qObzgUfCl28
Fernando 6 abril. 2012 - 16:10
Ah sí, no mencioné eso pero sí, son intercambiables.
El video de Kaiser Chiefs lo tengo pendiente para otro post sobre Ruby, sonó mucho en la RubyConf, ¿no?
Dan 6 abril. 2012 - 18:31
Indudablemente, sí, jeje. 😛