Qué es Ruby on Rails?

agosto 19th, 2009 | Posted by alegg in Rails - (1 Comments)

Ruby on Rails no es sólo un lenguaje, es un conjunto de un lenguaje (Ruby) sobre el que trabaja un framework (Rails). En comparación con PHP, Ruby sería el lenguaje como lo es PHP, y Rails sería la arquitectura que se levanta encima como lo podría ser el framework Zend.

En qué se diferencian Ruby y PHP?

La diferencia principal es la potencia. Si PHP es un lenguaje procedural (basado en funciones) al que paulatinamente le han dado soporte y potencia con la orientación a objetos, Ruby ya es de por si un lenguaje dónde absolutamente todo es un objeto, con lo que las posibilidades son casi infinitas. Gracias a éso, aparece una nueva diferencia a nivel de concepto: en PHP lo usual es tener algo (un string, un integer, un objeto) que pasas a una función o método para que haga el trabajo y te devuelve el resultado (otro integer, otro string, otro objeto). El Ruby lo usual es que el propio objeto (porque todo es un objeto) lleve los métodos con los que trabajar.

Pero PHP ya tiene soporte de objetos!

Si, y no va nada mal cuando te acostumbras a usarlo. En Atrapalo usábamos un framework propio que hacía un uso intensivo de los objetos. En Privalia el framework usado era Zend y en muchos aspechos se optimizaba el uso de los objetos. Pero hay conceptos que el PHP no tiene, como los code blocks de Ruby (snippets de código que puedes adjuntar a un método) o redeclarar una clase para agregarle funcionalidad (éso en PHP produce un Fatal Error), de forma que puedes hacer que una clase abra a otra y le agregue un par de métodos nuevos.

No me estás diciendo nada nuevo

Hay dos tipos de programadores: los reacios a los cambios y los que les gusta aprender. Si eres uno de los reacios tranquilo, PHP seguirá evolucionando y tendrás mayores opciones con las que jugar. Siempre lo ha hecho. Si eres uno de los segundos encontrarás una potencia de lenguaje sorprendente con la que el concepto de aplicación la enfocas desde otros puntos de vista, como plugins a un core principal, módulos atómicos que se interrelacionan entre ellos…

Vale, quiero empezar con algo

Primero de todo debo decir las versiones que actualmente se están moviendo en RoR.

 Versión de Ruby: 1.8.6
 Versión de Rails: 2.1.1

Sería interesante que instalaras un entorno para las pruebas que quieras hacer mientras lees los manuales. La instalación básica es muy fácil. Todas las instalaciones de RoR que he hecho (incluso en mi eeePC) han sido usando este pequeño y efectivo tutorial: How to install Rails 2.1 on Ubuntu in 5 steps, aunque voy a poner las pasos rápidamente a continuación:

1.- Instalar ruby

 sudo apt-get install ruby rdoc irb ruby1.8-dev rubygems libopenssl-ruby 

2.- Actualizar el gestor de paquetes Gem a la última versión

sudo gem update –system

3.- Eliminar la versión antígua de Gem

sudo apt-get remove rubygems

4.- Creamos un enlace para que los programas que busquen el Gem eliminado ejecuten el Gem nuevo

 sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

5.- Instalar Rails

 sudo gem install rails

Además, lo suyo es ejecutar Ruby on Rails sobre MySQL, así que deberíamos instalar el servidor MySQL con la librería de Ruby correspondiente:

 sudo apt-get install mysql-server libmysql-ruby

Una vez se tiene el entorno montado simplemente es cuestión de seguir algun manual. Qué manuales deberíamos seguir? Bueno, aquí la cosa depende de los gustos de cada uno. Voy a dar una lista de manuales que valdria la pena seguir.

* Pargmatic Bookshelf – Programming Ruby (2nd edition). Ideal para aprender el lenguaje Ruby. No se toca nada de Rails. Genial para coger base en el lenguaje
* The Rails Way. Enseña la forma de trabajade Rails, explicando las capas de abstracción que Rails usa.
* Rails for PHP developers. Genial libro dónde da por supuesto que sabemos programar en PHP, usando ésto para enseñarnos Rails. Se avanza muy rápido, y no sustituye los dos anteriores.

He puesto lo enlaces de Amazon para tener claro qué libros son, pero supongo que no tendréis problemas para encontrar sus versiones en PDF por internet ;)

Qué otros recursos son interesantes?

* http://api.rubyonrails.org: Toda la API de Rails
* http://www.ruby-doc.org/: Documentación de Ruby
* http://railscasts.com/: Imprescindible para iniciarse en las best-practices
* http://buildingwebapps.com/site/home: Lleno de artículos, podcast interesantes
* http://www.ruby-forum.com/: Foro de Ruby
* http://www.railsenvy.com/: Podcast semanal, algo más avanzado
* http://www.caboo.se/: Buena calidad de artículos

Garcias a Xavier Arnaus Gil de http://www.syntaxerror.es por su colaboración.

Completo tutorial de Ruby on Rails

agosto 5th, 2009 | Posted by alegg in Rails - (1 Comments)

Este tutorial esta muy bien para aprender a crear aplicaciones en Ruby on Rails. Incluye una explicación muy detallada de como instalar, bajar los paquetes y crear la estructura de una aplicación basica en rails.

Url: http://www.hackerdude.com/courses/rails/

Contenidos

1. Instalando Rails en su plataforma.
2. Nuestra primera aplicación – creando un esqueleto
3. Teoría: El Paradigma MVC
4. Teoría: Pruebas de Unidad (Unit Tests)
5. Configurando la base de datos
6. Creando un Módulo con Modelo, Controlador y Vista
7. Control de versiones con subversion
8. Pruebas de Unidad en Rails
9. Teoría de Objetos
10. Mapeo de Objetos a Relaciones
11. Modificando el Módulo generado – Vistas
12. Buen diseño con CSS
13. Utilizando Helpers
14. Añadiendo seguridad con un filtro
15. Un poquito de AJAX