33
Ruby On Rails Desarrollo de aplicaciones web sin dolor por Nelson Rojas Núñez

Presentacion Ruby on Rails en Universidad Autónoma 2009

Embed Size (px)

DESCRIPTION

Diapositivas de la presentación del fabuloso framework de desarollo Ruby On Rails usando la versión 2. Exposición realizada en el encuentro de Software Libre realizado por la Universidad Autónoma en Talca, Chile

Citation preview

Page 1: Presentacion Ruby on Rails en Universidad Autónoma 2009

Ruby On Rails

Desarrollo de aplicaciones web sin dolor

por Nelson Rojas Núñez

Page 2: Presentacion Ruby on Rails en Universidad Autónoma 2009

¿Quién expone?

Nelson Rojas NúñezIng. Ejec. Computación UCM TalcaDesarrollador de día y Docente Universitario algunas noches

Page 3: Presentacion Ruby on Rails en Universidad Autónoma 2009

¿Qué es Rails?

Es un framework de código abierto escrito en Ruby

que sirve para desarrollar aplicaciones web que

acceden a base de datos

Page 4: Presentacion Ruby on Rails en Universidad Autónoma 2009

¿Qué tiene de especial?

Puedes desarrollar una aplicación web 10 veces más rápido que lo

que tardarías con un típico framework java y sin sacrificar la

calidad de la aplicación

Page 5: Presentacion Ruby on Rails en Universidad Autónoma 2009

Algunos escépticos estarán pensando

“Si claro, 10 veces más rápido”... ¿cómo no?

Page 6: Presentacion Ruby on Rails en Universidad Autónoma 2009

¿Cómo es posible?• Ruby tiene un gran poder y además es sencillo

• Dos principios en RailsoMenos Software (DRY)oConvenciones sobre configuraciones (COC)

Page 7: Presentacion Ruby on Rails en Universidad Autónoma 2009

DRY

Don't Repeat YourselfNo te repitas!

Page 8: Presentacion Ruby on Rails en Universidad Autónoma 2009

Menos Software

Menos líneas de códigoMás rápido de implementar

Menos erroresMejor Mantención

** código a dieta **

Page 9: Presentacion Ruby on Rails en Universidad Autónoma 2009

Convenciones sobre configuraciones

Adiós a los prolijos archivos de configuración

en XMLConvenciones simples

Page 10: Presentacion Ruby on Rails en Universidad Autónoma 2009
Page 11: Presentacion Ruby on Rails en Universidad Autónoma 2009

Separación de código

M V C

Modelopara los datos

Vistapara la Interfaz

Controladordirige la orquesta

Page 12: Presentacion Ruby on Rails en Universidad Autónoma 2009

Modelo

• Para acceder a los datos• Módulo: ActiveRecord• Una clase representa una tabla• Se descubren automáticamente los campos• Se pueden declarar relaciones con otros

modelos/tablas• Se puede personalizar y añadir métodos• CRUD: CREATE READ UPDATE DELETE

Page 13: Presentacion Ruby on Rails en Universidad Autónoma 2009

Ejemplo de Modelo

class Aviso < ActiveRecord::Base belongs_to :categoria def activo? self.vencimiento > Time.now endend

Page 14: Presentacion Ruby on Rails en Universidad Autónoma 2009

Vista

• Para decidir el aspecto• Módulo: ActionView• Plantillas en formato Embedded Ruby• HTML con Ruby embebido• Una por cada acción de cada controlador• Corolario: dependen de los controladores• HTML repetitivo, a funciones externas o helpers

Page 15: Presentacion Ruby on Rails en Universidad Autónoma 2009

Ejemplo de Vista

<h1>Lista de avisos</h1><% for aviso in @avisos %> <p><%= aviso.titulo %></p>

<% end %>

Page 16: Presentacion Ruby on Rails en Universidad Autónoma 2009

Controlador

• Director de orquesta: recibe las peticiones desde el exterior (browser/vistas), conecta con los modelos y retorna el resultado como vista.

• Módulo: ActionPack• Cada controlador una clase Ruby• Cada método, una acción

Page 17: Presentacion Ruby on Rails en Universidad Autónoma 2009

Ejemplo de Controlador

class AvisosController < ApplicationController def index @avisos = Aviso.all endend

Page 18: Presentacion Ruby on Rails en Universidad Autónoma 2009

Arquitectura Rails

Page 19: Presentacion Ruby on Rails en Universidad Autónoma 2009

Herramientas

• En ./script/ogenerate (genera codigo)oplugin (incluir codigo de 3ros)oserver (servidor simple)oconsole (consola interactiva)odbconsole (consola base datos)o runner (ejecuta trozos de Ruby)

Page 20: Presentacion Ruby on Rails en Universidad Autónoma 2009

Rakefile

• Similar a make, pero en Ruby• Incluye

o stats (estadisticas)odoc (generar documentacion)o test (realizar pruebas)omigrate (migraciones de BD)

Page 21: Presentacion Ruby on Rails en Universidad Autónoma 2009

Componentes base

ActiveRecordActionPack

Page 22: Presentacion Ruby on Rails en Universidad Autónoma 2009

ActiveRecordDatabase agnostic

Capa ORM de RailsTablas como clases

Registros como objetosColumnas como objetosCrecimiento incremental

Page 23: Presentacion Ruby on Rails en Universidad Autónoma 2009

Ejemplo ActiveRecordcreando la tabla

*con sql normalcreate table avisos (id bigint not null primary key auto_increment,contenido text,categoria_id int,created_at timestamp,updated_at timestamp);

*con el generador de rubyscript/generate model aviso contenido:text categoria_id:integerrake db:migrate

class Aviso < ActiveRecord::Baseend

Page 24: Presentacion Ruby on Rails en Universidad Autónoma 2009

Ejemplo ActiveRecordTodos los registros de la tabla avisos

*con sql normalselect * from avisos;*con ActiveRecord@avisos = Aviso.find(:all) , o su abreviatura@avisos = Aviso.all

Todos los registros de la categoria 10*con sql normalselect * from avisos where categoria_id = 10;*con ActiveRecord@avisos = Aviso.find_all_by_categoria_id(10) ** metodos mágicos sin siquiera definirlos

Page 25: Presentacion Ruby on Rails en Universidad Autónoma 2009

Asociaciones en ActiveRecord

class Aviso < ActiveRecord::Basebelongs_to :categoria#proviene de categoriaend

class Categoria < ActiveRecord::Basehas_many :avisos#tiene muchos avisosend

Usuariocategoriasid

avisosidcategoria_id

Page 26: Presentacion Ruby on Rails en Universidad Autónoma 2009

ActionPack

Compuesto por ActionController y ActionView

Juntos permiten procesar los requerimientos entrantes y

generar las respuestas de salida

Page 27: Presentacion Ruby on Rails en Universidad Autónoma 2009

ActionController

Recibe las peticiones desde el navegador generalmente de este

modohttp://sitio/controller/action/id

p.e. http://profenelson.cl/posts/show/1Controlador posts, accion show, id = 1

Page 28: Presentacion Ruby on Rails en Universidad Autónoma 2009

ActionControllerSe puede modificar las rutas para que tengan

mejor aspecto y otro tipo de utilidadPor ejemplo

http://sitio/noticias/2009/11/26

http://sitio/loginmap.login 'login', :controller => 'sessions', :action => 'new'

En vez de usarhttp://sitio/sessions/new

Page 29: Presentacion Ruby on Rails en Universidad Autónoma 2009

Muy bien Houdini

muéstramelo que tienes!

Page 30: Presentacion Ruby on Rails en Universidad Autónoma 2009

Lo que dice gente inteligente acerca de Rails"Rails es el framework de desarrollo web mejor

pensado que he usado, y puedo decirlo luego de una década de hacer aplicaciones web para vivir.

He construido mis propios frameworks, he ayudado a desarrollar el API Servlet, y he creado varios servidores web a partir de cero. Nadie lo ha

hecho así antes."

James Duncan Davidson, creador de Tomcat y Ant

Page 31: Presentacion Ruby on Rails en Universidad Autónoma 2009

Lo que dice gente inteligente acerca de Rails

"Después de investigar el mercado, Ruby on Rails se destacó como la mejor opción. Hemos sido muy

felices con esa decisión. Vamos a seguir construyendo en Rails y consideramos que es una

ventaja clave de negocio. "

Evan Williams, creador de Blogger, Odeo, y Twitter

Page 32: Presentacion Ruby on Rails en Universidad Autónoma 2009

Lo que dice gente inteligente acerca de Rails

"Rails es la aplicación de Ruby."

Yukihiro Matsumoto, creador de Ruby

Page 33: Presentacion Ruby on Rails en Universidad Autónoma 2009

Muchas gracias