Ruby on Rails

70
Ruby on Rails Razones por las que deberías tenerlo en tu radar Sergio Gil

description

Razones por las que deberías tenerlo en tu radar Recorrido rápido por algunas de las características principales del framework de desarrollo web "Ruby on Rails"

Transcript of Ruby on Rails

Page 1: Ruby on Rails

Ruby on RailsRazones por las que deberías tenerlo en tu

radar

Sergio Gil

Page 2: Ruby on Rails

Ruby

Page 3: Ruby on Rails

Ruby

Page 4: Ruby on Rails

• Creado en Japón en los 90

Ruby

Page 5: Ruby on Rails

• Creado en Japón en los 90• Interpretado

Ruby

Page 6: Ruby on Rails

• Creado en Japón en los 90• Interpretado• Dinámico

Ruby

Page 7: Ruby on Rails

• Creado en Japón en los 90• Interpretado• Dinámico• Orientado a objetos

Ruby

Page 8: Ruby on Rails

• Creado en Japón en los 90• Interpretado• Dinámico• Orientado a objetos• Mola =;-)

Ruby

Page 9: Ruby on Rails

5.timesdoputs'¡Fácil!'end

Page 10: Ruby on Rails

5.timesdoputs'¡Fácil!'end

• Cercano a nuestra forma de pensar

Page 11: Ruby on Rails

5.timesdoputs'¡Fácil!'end

• Cercano a nuestra forma de pensar• Lo cual da una experiencia mejor

Page 12: Ruby on Rails

5.timesdoputs'¡Fácil!'end

• Cercano a nuestra forma de pensar• Lo cual da una experiencia mejor• Te hace sentir inteligente

Page 13: Ruby on Rails

5.timesdoputs'¡Fácil!'end

• Cercano a nuestra forma de pensar• Lo cual da una experiencia mejor• Te hace sentir inteligente• ¡Es divertido!

Page 14: Ruby on Rails

Rails

Page 15: Ruby on Rails

Ruby on Rails

Page 16: Ruby on Rails

• Framework de desarrollo web

Ruby on Rails

Page 17: Ruby on Rails

• Framework de desarrollo web• Creado por David Heinemeier Hanson

(37signals)

Ruby on Rails

Page 18: Ruby on Rails

• Framework de desarrollo web• Creado por David Heinemeier Hanson

(37signals)• Extraído de su aplicación Basecamp

Ruby on Rails

Page 19: Ruby on Rails

• Framework de desarrollo web• Creado por David Heinemeier Hanson

(37signals)• Extraído de su aplicación Basecamp• Liberado en 2005

Ruby on Rails

Page 20: Ruby on Rails

Colección de patrones resueltos

¿Cuántas veces has hecho...

Page 21: Ruby on Rails

Colección de patrones resueltos

¿Cuántas veces has hecho...

Page 22: Ruby on Rails

Colección de patrones resueltos

¿Cuántas veces has hecho...

Page 23: Ruby on Rails

Colección de patrones resueltos

¿Cuántas veces has hecho...

Page 24: Ruby on Rails

Colección de patrones resueltos

¿Cuántas veces has hecho...

Page 25: Ruby on Rails

Colección de patrones resueltos

¿Cuántas veces has hecho...

Page 26: Ruby on Rails

Framework “con opinión”

Hacer fácil lo correcto...

...y difícil lo incorrecto

“si es feo, probablemente está mal”

Page 27: Ruby on Rails
Page 28: Ruby on Rails
Page 29: Ruby on Rails
Page 30: Ruby on Rails
Page 31: Ruby on Rails
Page 32: Ruby on Rails
Page 33: Ruby on Rails
Page 34: Ruby on Rails

La Comunidad

Page 35: Ruby on Rails

ModeloVista

Controlador

MVC

Page 36: Ruby on Rails
Page 37: Ruby on Rails

Convention Over Configuration

Page 38: Ruby on Rails

Convención: norma sin efecto real directo, salvo el beneficio que se obtiene de que todos

los agentes la sigan

Page 39: Ruby on Rails
Page 40: Ruby on Rails

classUser<ActiveRecord::Base

has_many:articles,:class_name=>"Article"end

classArticle<ActiveRecord::Base

belongs_to:user,:class_name=>"User"end

classUser<ActiveRecord::Baseset_table_name"users"

has_many:articles,:class_name=>"Article",:foreign_key=>"user_id"end

classArticle<ActiveRecord::Baseset_table_name"articles"

belongs_to:user,:class_name=>"User",:foreign_key=>"user_id"end

classUser<ActiveRecord::Baseset_table_name"users"set_primary_key"id"has_many:articles,:class_name=>"Article",:foreign_key=>"user_id"end

classArticle<ActiveRecord::Baseset_table_name"articles"set_primary_key"id"belongs_to:user,:class_name=>"User",:foreign_key=>"user_id"end

classUser<ActiveRecord::Base

has_many:articles,:class_name=>"Article",:foreign_key=>"user_id"end

classArticle<ActiveRecord::Base

belongs_to:user,:class_name=>"User",:foreign_key=>"user_id"end

classUser<ActiveRecord::Base

has_many:articlesend

classArticle<ActiveRecord::Base

belongs_to:userend

Page 41: Ruby on Rails

classUser<ActiveRecord::Base

has_many:articles,:class_name=>"Article"end

classArticle<ActiveRecord::Base

belongs_to:user,:class_name=>"User"end

classUser<ActiveRecord::Baseset_table_name"users"

has_many:articles,:class_name=>"Article",:foreign_key=>"user_id"end

classArticle<ActiveRecord::Baseset_table_name"articles"

belongs_to:user,:class_name=>"User",:foreign_key=>"user_id"end

classUser<ActiveRecord::Base

has_many:articles,:class_name=>"Article",:foreign_key=>"user_id"end

classArticle<ActiveRecord::Base

belongs_to:user,:class_name=>"User",:foreign_key=>"user_id"end

classUser<ActiveRecord::Base

has_many:articlesend

classArticle<ActiveRecord::Base

belongs_to:userend

Page 42: Ruby on Rails

classUser<ActiveRecord::Base

has_many:articles,:class_name=>"Article"end

classArticle<ActiveRecord::Base

belongs_to:user,:class_name=>"User"end

classUser<ActiveRecord::Base

has_many:articles,:class_name=>"Article",:foreign_key=>"user_id"end

classArticle<ActiveRecord::Base

belongs_to:user,:class_name=>"User",:foreign_key=>"user_id"end

classUser<ActiveRecord::Base

has_many:articlesend

classArticle<ActiveRecord::Base

belongs_to:userend

Page 43: Ruby on Rails

classUser<ActiveRecord::Base

has_many:articles,:class_name=>"Article"end

classArticle<ActiveRecord::Base

belongs_to:user,:class_name=>"User"end

classUser<ActiveRecord::Base

has_many:articlesend

classArticle<ActiveRecord::Base

belongs_to:userend

Page 44: Ruby on Rails

classUser<ActiveRecord::Base

has_many:articlesend

classArticle<ActiveRecord::Base

belongs_to:userend

Page 45: Ruby on Rails

classUser<ActiveRecord::Base

has_many:articlesend

classArticle<ActiveRecord::Base

belongs_to:userend

classUser<ActiveRecord::Basehas_many:articlesend

classArticle<ActiveRecord::Basebelongs_to:userend

Page 46: Ruby on Rails

classUser<ActiveRecord::Basehas_many:articlesend

classArticle<ActiveRecord::Basebelongs_to:userend

Page 47: Ruby on Rails

Don’t Repeat Yourself

Page 48: Ruby on Rails

ActionController::Routing::Routes.drawdo|map|map.article':year/:title',:controller=>'articles',:action=>'show'map.connect':controller/:action/:id'end

link_to(article.title,article_url(:year=>article.date.year,:title=>article.title))

config/routes.rb

app/views/articles/index.rhtml

<ahref="/2007/rails">rails</a>

Page 49: Ruby on Rails

Y además

Page 50: Ruby on Rails
Page 51: Ruby on Rails

Testing integrado

Page 52: Ruby on Rails

Testing integradoPlugins

Page 53: Ruby on Rails

Testing integradoPlugins

Migraciones

Page 54: Ruby on Rails

Testing integradoPlugins

MigracionesORM avanzado

Page 55: Ruby on Rails

Testing integradoPlugins

MigracionesORM avanzado

REST

Page 56: Ruby on Rails

Testing integradoPlugins

MigracionesORM avanzado

RESTAJAX

Page 57: Ruby on Rails

Testing integradoPlugins

MigracionesORM avanzado

RESTAJAX

Capistrano

Page 58: Ruby on Rails

¡Me apunto!

Page 59: Ruby on Rails

http://www.rubyonrails.org/

Page 60: Ruby on Rails

Lista de correo en español

http://lists.simplelogica.net/mailman/listinfo/ror‐es

Page 61: Ruby on Rails
Page 62: Ruby on Rails

Conferencia Rails Hispana ‘2007

Madrid, 22 y 23 de noviembre

http://www.conferenciarails.org/

Page 63: Ruby on Rails

Entonces, ¿Rails es la solución a todos

los problemas?

Page 64: Ruby on Rails

NO

Page 65: Ruby on Rails

NOPero sí una herramienta útil

para muchos; tenla en tu arsenal y úsala cuando

corresponda

Page 66: Ruby on Rails

¿Y escala?

Page 67: Ruby on Rails

Sí.

Page 68: Ruby on Rails

¿Preguntas?

Page 70: Ruby on Rails

Créditos fotográficosLars Kristian Flem (http://www.flickr.com/photos/larskflem/46551303/) (CC)Michel Kuik (http://www.flickr.com/photos/michelkuik/161160973/) (CC)Ale Muñoz (http://www.sofanaranja.com/)Brillantine Sánchez (http://www.flickr.com/photos/brilliantly/534331230)Robert Parviainen (http://flickr.com/photos/rtv/290062998/) (CC)Sean Dwyer (http://www.flickr.com/photos/dwired/1414217985/) (CC)