ruby on rails

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

Upload: sergio-gil

Post on 19-Jan-2015

1.828 views

Category:

Technology


3 download

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

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)