2

Por qué me enamoré de Ruby on Rails

4419Puntos

hace 6 años

El desarrollo de software se ha convertido en algo indispensable. Es casi imposible pensar en alguna empresa y/o producto que no tenga algún tipo de desarrollo. Bajo esta tendencia, se vienen muchos lenguajes de programación y frameworks para el desarrollo. No voy a entrar en el debate de la muerte de qué framework es mejor que otro. En su lugar, hablaré del por qué me enamoré de Ruby on Rails.

El Lenguaje

Ruby es un lenguaje hermoso y se centraliza, según su creador Matz, en la productividad y en la felicidad del developer. No voy a meterme en más detalles, mejor mira su código:
paises = %w[mexico usa cuba espana]  
paises_visitados = %w[mexico usa]  
puts "Los paises que no he visitado son: #{(paises-paises_visitados).join(", ")}"  
#=> Los paises que no he visitado son: cuba, espana</code><code class="language-ruby">
#un loop en single line
(0..10).each{|n| puts n}
#=>012345678910

#Ah! era menor o igual… ok!
(0...10).each{|n| puts n}
#=> 0123456789
Ahora algo de rails
orders = Order.all  
orders.each do |order|  
  #Quiero saber qué productos son los que han estado en orders
  puts “Los productos que se encuentran en la orden # #{order.number} son #{order.products.map(&:name).join(“, ")}
end  
¿No es hermoso?

La consola de Rails

La consola que tiene Rails te ayuda a probar toooodo lo que tienes en tu aplicación antes de ejecutarlo en el browser. Esto hace que el debug sea mucho más fácil. El código de arriba, por ejemplo, lo puedo copiar y pegar en la consola de Rails y ejecutarlo ahí.

Generators ¡oh grandiosos generators!

RoR incluye un grupo de comandos que funcionan directamente en la terminal. Algunos de ellos son los generators. Estos te ayudan a generar código por ti mismo. Por ejemplo, si quieres crear un controller:
$ rails generate controller products index new update create
A diferencia de que si se creara de manera manual, esto no sólo te crea el controller; sino que genera el esqueleto (con los métodos index, new, update y create) de las vistas, de las rutas, de los assets y de las pruebas necesarias. Los generators disponibles los puedes obtener corriendo rails generate (o rails g que es un alias).

Migrations FTW

Una de las cosas mas complicadas de hacer cuando se trabaja con aplicaciones de medianas a grandes, es cambiar el engine en las bases de datos. Esto debido a que no hay un standard en los queries. O sea que los queries de la creación de tablas, inserts, selects, etc, no son los mismos en los diferentes engines. Y para esto sirven las migraciones. Cuando se crea una migración, se genera un archivo en Ruby para efectuar los cambios en la base de datos. Lo que hace Rails de manera interna es convertir ese código en Ruby a código de SQL del engine que se esté utilizando. Esto quiere decir que cambiar de engine y generar la estructura de la Base de datos con sus tablas es tan fácil como cambiar una línea de código: cambiar MySql por PostgreSQL.

ORM

Rails contiene un ORM que te permite olvidarte de los tediosos queries. En el pasado, si querías cambiar de engine de base de datos tenías que cambiar los queries también. Para contrarrestar esto, Ruby tiene el ActiveRecord, que mapea todos los campos de tus tablas a tus modelos y que te permite hacer algo como esto:
#actualizar precio de producto con el nombre "macbook pro"
producto = Product.find_by_name("macbook pro")  
producto.price = 50.50  
producto.save!  
O lo puedes hacer en menos código (una línea):
Product.find_by_name("macbook pro").update_attributes!(price: 50.50)  

Convention Over Configuration

Esto es un principio básico de RoR que te obliga a enfocarte en lo que importa. Este enfoque suele ser la productividad de lo que estás desarrollando. Esto con el objetivo de no perder el tiempo con configuraciones. Un ejemplo claro se observa cuando generas un modelo en Rails. El código se ve así:
class Person < ActiveRecord::Base  
end  
Ese es un modelo. (Sí, ¡en serio!) Internamente, Rails sabe que esa clase debe estar enlazada con una tabla en la base de datos que se llama people (el plural del nombre del modelo). De la misma manera, puedes aplicar cualquier método del ActiveRecord: find, where, select, last, first, etc. Existen muchas otras cosas más que me gustan de RoR; y no me alcanza un post para enunciarlas todas. El Curso profesional de Ruby on Rails de Platzi te lleva sobre el maravilloso recorrido del aprendizaje de RoR. Si lo tomas, seguro te vas a enamorar de este maravilloso framework como yo.
Ricardo Barrera
Ricardo Barrera
rbarrera87

4419Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2